- _exec_cmd(instance,
- cmd_parser.unparsed,
- cmd_parser.parser.print_help)
- except CLIError as err:
- _print_error_message(err)
- elif ('-h' in cmd_args or '--help' in cmd_args) \
- or len(cmd_args): # print options
- print('%s: %s' % (cmd.name, subcmd.help))
- options = {}
- for sub in subcmd.get_subcommands():
- options[sub.name] = sub.help
- print_dict(options)
+ cls = subcmd.cmd_class
+ cmd_parser.required = getattr(cls, 'required', None)
+ ldescr = getattr(cls, 'long_description', '')
+ if subcmd.path == 'history_run':
+ instance = cls(
+ dict(cmd_parser.arguments), self.auth_base,
+ cmd_tree=self.cmd_tree)
+ else:
+ instance = cls(
+ dict(cmd_parser.arguments),
+ self.auth_base, self.cloud)
+ cmd_parser.update_arguments(instance.arguments)
+ cmd_parser.arguments = instance.arguments
+ subpath = subcmd.path.split('_')[
+ (len(cmd.path.split('_')) - 1):]
+ cmd_parser.syntax = '%s %s' % (
+ ' '.join(subpath), instance.syntax)
+ help_method = self._create_help_method(
+ cmd.name, cmd_parser.arguments,
+ cmd_parser.required, subcmd.help, cmd_parser.syntax)
+ if '-h' in cmd_args or '--help' in cmd_args:
+ help_method()
+ if ldescr.strip():
+ print('\nDetails:')
+ print('%s' % ldescr)
+ return
+ cmd_parser.parse(cmd_args)
+
+ for name, arg in instance.arguments.items():
+ arg.value = getattr(
+ cmd_parser.parsed, name, arg.default)
+
+ exec_cmd(instance, cmd_parser.unparsed, help_method)
+ #[term for term in cmd_parser.unparsed\
+ # if not term.startswith('-')],
+ except (ClientError, CLIError) as err:
+ print_error_message(err)
+ elif ('-h' in cmd_args or '--help' in cmd_args) or len(cmd_args):
+ # print options
+ print('%s' % cmd.help)
+ print_subcommands_help(cmd)