#!/usr/bin/env python3
# This file is placed in the Public Domain.
#
# pylint: disable=C0115,C0116,C0209,C0413,W0201,R0903,W0212


"program"


import inspect
import os
import sys


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


from prg.object import Default, Object, fmt, keys
from prg.disk   import Storage
from prg.find   import find
from prg.run    import Cfg, CLI, Event, parse, scan


Storage.wd = os.path.expanduser("~/.prg")

import prg.mods as mods


class Event(Event):

    def show(self) -> None:
        for txt in self.result:
            print(txt.encode('utf-8', 'replace').decode())
            sys.stdout.flush()


def main():
    parse(Cfg, " ".join(sys.argv[1:]))
    if "wd" in Cfg.sets:
        Storage.wd = Cfg.wd
    scan(mods)
    evn = Event()
    evn.txt = Cfg.otxt
    parse(evn)
    CLI.dispatch(evn)


if __name__ == "__main__":
    main()
