#!python
# This file is placed in the Public Domain.


"Prosector. Reconsider. OTP-CR-117/19."


import os, sys

cwd = os.getcwd()
sys.path.insert(0, cwd)
sys.path.insert(0, os.path.join(cwd, "lib"))


import readline
import termios
import time
import traceback


from obj import Config


Config.console = False
Config.name = "genocide"
Config.services = False
Config.workdir = os.path.expanduser("~/.genocide")


from irc import Config as IRCConfig


IRCConfig.channel = "#genocide"
IRCConfig.nick = "genocide"
IRCConfig.realname = "Prosector. Reconsider. OTP-CR-117/19."
IRCConfig.username = "genocide"


from csl import Console
from evt import Command
from hdl import Callbacks, Commands, Handler, dispatch
from irc import IRC
from obj import Object, format
from rss import Fetcher


from genocide.scn import init, scan, wrap


class Console(Console):


    def raw(self, txt):
        print(txt)


def main():
    Callbacks.add("command", dispatch)
    Callbacks.threaded = False
    c = Console()
    if "-s" in sys.argv:
        Config.services = True
    if "-c" in sys.argv:
        Config.console = True
    elif len(sys.argv) > 1 and not Config.services:
        scan("genocide", True)
        return c.cmd(" ".join(sys.argv[1:]))
    print("GENOCIDE started at %s" % time.ctime(time.time()).replace("  ", " "))
    scan("genocide", True)
    if not Config.console:
        i = IRC()
        i.start()
        print(format(i.cfg, skip="realname,sleep,username"))
        f = Fetcher()
        f.start()
    if Config.services:
        init("mdl,sui")
    c.start()
    c.forever()


wrap(main)
