예제 #1
0
 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)
예제 #2
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)
예제 #3
0
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)
예제 #4
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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)