コード例 #1
0
ファイル: main.py プロジェクト: inercia/candelabra
def main():
    import argparse

    parser = argparse.ArgumentParser(description=_DESCRIPTION,
                                     add_help=True)
    parser.add_argument('-c',
                        '--config',
                        metavar='FILE',
                        dest='config',
                        type=basestring,
                        default=None,
                        help='configuration file')

    parser.add_argument('-L',
                        '--log-level',
                        dest='loglevel',
                        default='info',
                        choices=logs.LOGLEVELS + [l.lower() for l in logs.LOGLEVELS],
                        help="console log level")

    parser.add_argument('-v',
                        '--verbose',
                        dest='verbose',
                        default=False,
                        action='store_true',
                        help="set verbose/debug level")

    parser.add_argument('--log-file',
                        dest='logfile',
                        default=None,
                        help="log file")

    parser.add_argument('--log-file-level',
                        dest='logfilelevel',
                        default=None,
                        choices=logs.LOGLEVELS + [l.lower() for l in logs.LOGLEVELS],
                        help="log file level")

    subparsers = parser.add_subparsers(help='supported commands help:',
                                       dest='command')

    _delayed_warnings = None

    register_all()

    # for all possible sub-commands, check if they have their own sub-parser and and it if present...
    commands = PLUGINS_REGISTRIES['candelabra.command']
    for command_name, command_instance in commands.plugins.iteritems():
        try:
            parser_command = subparsers.add_parser(command_name, help=command_instance.DESCRIPTION)
            command_instance.argparser(parser_command)
        except AttributeError, e:
            _delayed_warnings = 'command "%s" cannot parse args' % command_name
        except Exception, e:
            _delayed_warnings = 'could not load parser for "%s"' % command_name
コード例 #2
0
ファイル: tests.py プロジェクト: inercia/candelabra
 def setUpClass(cls):
     config.load_string(cls.CONFIG)
     register_all()