def main(args=sys.argv[1:]): """Run command and return exit status code.""" if not args: get_parser().print_help() return EXIT_SUCCESS command = get_command(args) try: command.run() except ClientConnectionError as e: # The error has already been logged by the client. response_status = e.args[0] if response_status < 400: return EXIT_CLIENT_ERROR else: return EXIT_SERVER_ERROR except OpbeatError as e: logger.error(e) if not command.args.verbose: logger.info('Run again with --verbose to see more details.') return EXIT_ERROR except Exception: logger.exception('Error executing command') return EXIT_ERROR else: return EXIT_SUCCESS
def get_command(args=sys.argv[1:]): parser = get_parser() args = parser.parse_args(args) logger.setLevel(logging.DEBUG if args.verbose else logging.INFO) Command = args.command_class return Command(parser=parser, args=args)