#!/usr/bin/env python3
# This file is placed in the Public Domain.
# pylint: disable=C0413,W0611


"prompt"


import os
import readline
import sys
import termios
import time


sys.path.insert(0, os.getcwd())


from rssbot.config  import Config
from rssbot.console import Console
from rssbot.errors  import errors
from rssbot.main    import cmnd, enable, init
from rssbot.modules import face
from rssbot.parse   import parse
from rssbot.utils   import forever, modnames


Cfg = Config()
Cfg.mod = ",".join(modnames(face))


def wrap(func):
    "reset console."
    old3 = None
    try:
        old3 = termios.tcgetattr(sys.stdin.fileno())
    except termios.error:
        pass
    try:
        func()
    except (KeyboardInterrupt, EOFError):
        pass
    finally:
        if old3:
            termios.tcsetattr(sys.stdin.fileno(), termios.TCSADRAIN, old3)


def main():
    "main"
    parse(Cfg, " ".join(sys.argv[1:]))
    if "v" in Cfg.opts:
        print(f"{Cfg.name.upper()} since {time.ctime(time.time())} {Cfg.opts.upper()}")
        enable(print)
    if "i" in Cfg.opts:
        for thr in init(Cfg.mod, face, wait="v" in Cfg.opts):
            thr.join()
    csl = Console(print, input)
    csl.start()
    forever()


if __name__ == "__main__":
    wrap(main)
    errors()
