#!/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, fnd
from prg.run    import CLI, Event, cmd, parse


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


Cfg = Default()


class Event(Event):

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


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


if __name__ == "__main__":
    main()
