def run(self, args): has_sub_commands = False subcommands_resolved = False if self.sub_commands: has_sub_commands = True # TODO handle args with size 1 unresolved_args = args[1:] if len(unresolved_args): for subcommand in self.sub_commands: if subcommand.name == unresolved_args[0]: subcommand.run(unresolved_args) subcommands_resolved = True break if not has_sub_commands: self.run_tasks(args) exit(0) else: if not subcommands_resolved: from tornado.template import Template msg_help = self.get_help() parser = FirenadoArgumentParser( prog=os.path.split(sys.argv[0])[1], usage='%(prog)s [options]', ) if isinstance(msg_help, Template): msg_help = msg_help.generate(parser=parser) print(get_command_header(parser, msg_help, True)) exit(0)
def run_tasks(self, args): cmd_parser = FirenadoArgumentParser( prog=os.path.split(sys.argv[0])[1], usage='%(prog)s [options]',) cmd_parser.add_argument("command", help="Command to executed") try: for task in self.tasks: task.add_arguments(cmd_parser) namespace = cmd_parser.parse_args(args) for task in self.tasks: task.run(namespace) except FirenadoArgumentError as error: command_help = "" for task in self.tasks: error_message = task.get_error_message(cmd_parser, error) if error_message: command_help += '\n'.join([command_help, error_message]) print(command_help)
def run_from_command_line(): """ Run Firenado's management commands from a command line """ for commands_conf in firenado.conf.management['commands']: logger.debug("Loading %s commands from %s." % (commands_conf['name'], commands_conf['module'])) exec('import %s' % commands_conf['module']) command_index = 1 for arg in sys.argv[1:]: command_index += 1 if arg[0] != "-": break parser = FirenadoArgumentParser(prog=os.path.split(sys.argv[0])[1], add_help=False) parser.add_argument("-h", "--help", default=argparse.SUPPRESS) parser.add_argument("command", default="help", help="Command to executed") try: namespace = parser.parse_args(sys.argv[1:command_index]) if not command_exists(namespace.command): show_command_line_usage(parser) else: run_command(namespace.command, sys.argv[command_index - 1:]) except FirenadoArgumentError: show_command_line_usage(parser, True)
def run_tasks(self, args): cmd_parser = FirenadoArgumentParser( prog=os.path.split(sys.argv[0])[1], usage='%(prog)s [options]', ) cmd_parser.add_argument("command", help="Command to executed") try: for task in self.tasks: task.add_arguments(cmd_parser) namespace = cmd_parser.parse_args(args) for task in self.tasks: task.run(namespace) except FirenadoArgumentError as error: command_help = "" for task in self.tasks: error_message = task.get_error_message(cmd_parser, error) if error_message: command_help += "\n".join([command_help, error_message]) print(command_help)
def run_from_command_line(): """ Run Firenado's management commands from a command line """ for commands_conf in firenado.conf.management['commands']: exec('import %s' % commands_conf['module']) command_index = 1 for arg in sys.argv[1:]: command_index += 1 if arg[0] != "-": break parser = FirenadoArgumentParser(prog=os.path.split(sys.argv[0])[1]) parser.add_argument("command", help="Command to executed") try: namespace = parser.parse_args(sys.argv[1:command_index]) if not command_exists(namespace.command): show_command_line_usage(parser) else: run_command(namespace.command, sys.argv[command_index-1:]) except FirenadoArgumentError: show_command_line_usage(parser, True)
def run_from_command_line(): """ Run Firenado's management commands from a command line """ for commands_conf in firenado.conf.management['commands']: exec('import %s' % commands_conf['module']) command_index = 1 for arg in sys.argv[1:]: command_index += 1 if arg[0] != "-": break parser = FirenadoArgumentParser(prog=os.path.split(sys.argv[0])[1]) parser.add_argument("command", help="Command to executed") try: namespace = parser.parse_args(sys.argv[1:command_index]) if not command_exists(namespace.command): show_command_line_usage(parser) else: run_command(namespace.command, sys.argv[command_index - 1:]) except FirenadoArgumentError: show_command_line_usage(parser, True)
def run_from_command_line(): """ Run Firenado's management commands from a command line """ for commands_conf in firenado.conf.management['commands']: logger.debug("Loading %s commands from %s." % ( commands_conf['name'], commands_conf['module'] )) exec('import %s' % commands_conf['module']) command_index = 1 for arg in sys.argv[1:]: command_index += 1 if arg[0] != "-": break parser = FirenadoArgumentParser(prog=os.path.split(sys.argv[0])[1], add_help=False) parser.add_argument("-h", "--help", default=argparse.SUPPRESS) parser.add_argument("command", default="help", help="Command to executed") try: namespace = parser.parse_args(sys.argv[1:command_index]) if not command_exists(namespace.command): show_command_line_usage(parser) else: run_command(namespace.command, sys.argv[command_index-1:]) except FirenadoArgumentError: show_command_line_usage(parser, True)