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

"main program"


import getpass
import os
import readline
import sys


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


from otpcr.config  import Config
from otpcr.client  import Client
from otpcr.command import Event, command, parse, scanner
from otpcr.main    import banner, modnames, privileges, wrap
from otpcr.modules import face
from otpcr.runtime import errors


if os.path.exists('mods'):
    from mods import face as MODS
else:
    MODS = None


class CLI(Client):

    "CLI"

    def raw(self, txt):
        "print text."
        print(txt)


def main():
    "main"
    readline.redisplay()
    parse(Config, " ".join(sys.argv[1:]))
    if not Config.txt:
        return None
    Config.mod = ",".join(modnames(face, MODS))
    Config.user = getpass.getuser()
    privileges(Config.user)
    if "v" in Config.opts:
        banner(print)
    scanner(Config.mod, face, MODS)
    cli = CLI()
    evt = Event()
    evt.orig = repr(cli)
    command(cli, evt, Config.otxt)


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