def _build_parser(): cmdname = _find_command() if cmdname is not None and not commands.has_command(cmdname): raise CommandLineError('unknown command: %s (see --help)' % (cmdname, )) config = _make_config(cmdname) cmd = commands.get_command(cmdname) if cmdname is not None else None # Epilog newlines/formatting is squashed by option parser. Something else # to fix. if cmdname is None: epilog = (["Available commands: "] + [cmd.name for cmd in sorted(commands.all_commands())]) usage = '%prog <command> [args] [options]' else: epilog = ['%s: %s' % (cmdname, cmd.__doc__)] usage = '%%prog %s [args] [options]' % (cmdname, ) parser = optparse.OptionParser(usage=usage, epilog=' '.join(epilog)) for opt in config.options().itervalues(): opt.populate_optparser(parser) return parser
def _build_parser(): cmdname = _find_command() if cmdname is not None and not commands.has_command(cmdname): raise CommandLineError('unknown command: %s (see --help)' % (cmdname,)) config = _make_config(cmdname) cmd = commands.get_command(cmdname) if cmdname is not None else None # Epilog newlines/formatting is squashed by option parser. Something else # to fix. if cmdname is None: epilog = ([ "Available commands: " ] + [ cmd.name for cmd in sorted(commands.all_commands()) ]) usage = '%prog <command> [args] [options]' else: epilog = ['%s: %s' % (cmdname, cmd.__doc__)] usage = '%%prog %s [args] [options]' % (cmdname,) parser = optparse.OptionParser(usage=usage, epilog=' '.join(epilog)) for opt in config.options().itervalues(): opt.populate_optparser(parser) return parser
def _interpret_cmdline(options, args): cmdname = _find_command() # should use guaranteed-same as parser builder config = _make_config(cmdname) given_options = [] for opt in config.options().itervalues(): longopt = opt.interpret_optparser_options(options) if longopt is not None: given_options.append(longopt) return (cmdname, args[1:], given_options, config)