import getopt import sys import core.utils from core.sheerka.Sheerka import Sheerka from repl.SheerkaPrompt import SheerkaPrompt def usage(): print("Sheerka v0.1\n") print("usage:") print(sys.argv[0] + "[-hdl:] command | [-i]") def main(argv): debug = False interactive = False loggers = set() try: opts, args = getopt.getopt(argv, "hdl:i", ["help", "debug", "logger=", "interactive"]) for o, a in opts: if o in ('-h', "--help"): usage() return True if o in ('-d', "--debug"): debug = True if o in ('-l', '--logger'): loggers.add(a) if o in ('-i', '--interactive'): interactive = True except getopt.GetoptError: usage() sys.exit(2) sheerka = Sheerka(debug=debug, loggers=loggers) sheerka.initialize() if interactive: result = SheerkaPrompt(sheerka).run() sys.exit(result) else: _in = core.utils.sysarg_to_string(args) result = sheerka.evaluate_user_input(_in) if not sheerka.enable_process_return_values: sheerka.print(result) return result[-1].status if len(result) > 0 else 1 if __name__ == '__main__': res = main(sys.argv[1:]) exit(0 if res else 1)