def parse_subcommands(self, gparser=None): """ Parse global arguments, find subcommand from list of subcommand objects, parse local subcommand arguments and return a tuple of global options, selected command object, command options, and command arguments. Call execute() on the command object to run. The command object has members 'gopts' and 'opts' set for global and command options respectively, you don't need to call execute with those but you could if you wanted to. """ gparser = gparser or self.gparser # parse global options. gopts, args = gparser.parse_args() if not args: gparser.print_help() raise SystemExit("\nError: you must specify an action.") # set debug level if specified if gopts.DEBUG: console.setLevel(logger.DEBUG) config.DEBUG_CONFIG = True # load StarClusterConfig into global options try: cfg = config.StarClusterConfig(gopts.CONFIG) cfg.load() except exception.ConfigNotFound, e: log.error(e.msg) e.display_options() sys.exit(1)
def parse_subcommands(self, gparser=None): """ Parse global arguments, find subcommand from list of subcommand objects, parse local subcommand arguments and return a tuple of global options, selected command object, command options, and command arguments. Call execute() on the command object to run. The command object has members 'gopts' and 'opts' set for global and command options respectively, you don't need to call execute with those but you could if you wanted to. """ gparser = gparser or self.gparser # parse global options. gopts, args = gparser.parse_args() if not args: gparser.print_help() raise SystemExit("\nError: you must specify an action.") # set debug level if specified if gopts.DEBUG: console.setLevel(logger.DEBUG) config.DEBUG_CONFIG = True # load StarClusterConfig into global options try: cfg = config.StarClusterConfig(gopts.CONFIG) cfg.load() except exception.ConfigNotFound, e: log.error(e.msg) e.display_options() sys.exit(1)
def parse_subcommands(self, gparser, subcmds): """ Parse given global arguments, find subcommand from given list of subcommand objects, parse local arguments and return a tuple of global options, selected command object, command options, and command arguments. Call execute() on the command object to run. The command object has members 'gopts' and 'opts' set for global and command options respectively, you don't need to call execute with those but you could if you wanted to. """ print self.get_description() # Build map of name -> command and docstring. cmds_header = 'Available Commands:' gparser.usage += '\n\n%s\n' % cmds_header gparser.usage += '%s\n' % ('-' * len(cmds_header)) gparser.usage += "NOTE: Pass --help to any command for a list of its " gparser.usage += 'options and detailed usage information\n\n' for sc in subcmds: helptxt = sc.__doc__.splitlines()[3].strip() gparser.usage += '- %s: %s\n' % (', '.join(sc.names), helptxt) for n in sc.names: assert n not in self.subcmds_map self.subcmds_map[n] = sc # Declare and parse global options. gparser.disable_interspersed_args() gopts, args = gparser.parse_args() if not args: gparser.print_help() raise SystemExit("\nError: you must specify an action.") subcmdname, subargs = args[0], args[1:] # set debug level if specified if gopts.DEBUG: console.setLevel(logger.DEBUG) # load StarClusterConfig into global options try: cfg = config.StarClusterConfig(gopts.CONFIG) cfg.load() except exception.ConfigNotFound, e: log.error(e.msg) e.display_options() sys.exit(1)
def parse_subcommands(gparser, subcmds): """Parse given global arguments, find subcommand from given list of subcommand objects, parse local arguments and return a tuple of global options, selected command object, command options, and command arguments. Call execute() on the command object to run. The command object has members 'gopts' and 'opts' set for global and command options respectively, you don't need to call execute with those but you could if you wanted to.""" import optparse global subcmds_map # needed for help command only. print get_description() # Build map of name -> command and docstring. subcmds_map = {} gparser.usage += "\n\nAvailable Actions\n" for sc in subcmds: helptxt = sc.__doc__.splitlines()[3].strip() gparser.usage += "- %s: %s\n" % (", ".join(sc.names), helptxt) for n in sc.names: assert n not in subcmds_map subcmds_map[n] = sc # Declare and parse global options. gparser.disable_interspersed_args() gopts, args = gparser.parse_args() if not args: gparser.print_help() raise SystemExit("\nError: you must specify an action.") subcmdname, subargs = args[0], args[1:] # set debug level if specified if gopts.DEBUG: console.setLevel(DEBUG) # load StarClusterConfig into global options try: cfg = config.StarClusterConfig(gopts.CONFIG) cfg.load() except exception.ConfigNotFound, e: log.error(e.msg) e.display_options() sys.exit(1)