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)
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)