Exemple #1
0
def start_slacker():
    signal.signal(signal.SIGINT, signal_handler)
    (args, cmd_args) = parse_args()

    session = Session.get()
    session.set_quiet_mode(args.quiet)

    global config
    config = Config.get()
    session.set_log_level(config.log_level())

    global slacker_logger
    slacker_logger = Logger(__name__).get()
    slacker_logger.debug("Starting Slacker...")

    if args.verbose:
        session.set_log_level(logging.DEBUG)
        Logger.set_level(logging.DEBUG)
        slacker_logger.debug("Verbose mode setting debug session log level.")

    if args.check:
        check()
        return

    if args.init:
        init()

    if not config.active_workspace():
        slacker_logger.error("No workspace active!")
        slacker_logger.error(
            "Run slacker with --init to interactively create a workspace and config "
            "file.")
        return

    reg = Registrar()
    for cmd in Command.find_all():
        reg.register(cmd())

    if reg.count() == 0:
        slacker_logger.error("No commands found!")
        sys.exit(-1)

    try:
        if not args.no_tests:
            reg.action("api.test")
            reg.action("auth.test")
    except Exception as ex:
        slacker_logger.error(str(ex))
        slacker_logger.warning(
            "Make sure you have internet access and verify your tokens!")
        sys.exit(-1)

    if cmd_args:
        # The arguments are already parsed into a list so pass it on!
        process(cmd_args, reg)
        return

    completer = build_prompt_completer(reg)
    in_memory_history = InMemoryHistory()

    while True:
        line = readline(completer, in_memory_history)
        if line is None:
            break
        elif not line:
            continue
        process(line, reg)
Exemple #2
0
 def set_log_level(self, level):
     if level not in Logger.levels():
         raise ValueError("Invalid log level: {}".format(level))
     self.__log_level = level
     Session.get().set_log_level(level)
     Logger.set_level(level)