Exemple #1
0
def workspace_token_prompt(msg="Input workspace token: "):
  logger = Logger(__name__).get()
  config = Config.get()
  workspace = ""
  token = ""
  while True:
    token = prompt(msg, is_password=True).strip()
    if len(token) == 0:
      continue
    data = verify_token(token)
    if not data:
      continue
    workspace = data["team"]
    if workspace in config.workspaces():
      logger.warning("Workspace of token already exists: {}".format(workspace))
      continue
    return (workspace, token)
Exemple #2
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)