Revision c8e17a67 kamaki/cli/command_shell.py
b/kamaki/cli/command_shell.py | ||
---|---|---|
167 | 167 |
|
168 | 168 |
# exec command or change context |
169 | 169 |
if subcmd.is_command: # exec command |
170 |
cls = subcmd.get_class() |
|
171 |
ldescr = getattr(cls, 'long_description', '') |
|
172 |
if subcmd.path == 'history_run': |
|
173 |
instance = cls(dict(cmd_parser.arguments), self.cmd_tree) |
|
174 |
else: |
|
175 |
instance = cls(dict(cmd_parser.arguments)) |
|
176 |
cmd_parser.update_arguments(instance.arguments) |
|
177 |
instance.arguments.pop('config') |
|
178 |
cmd_parser.arguments = instance.arguments |
|
179 |
cmd_parser.syntax = '%s %s' % ( |
|
180 |
subcmd.path.replace('_', ' '), cls.syntax) |
|
181 |
if '-h' in cmd_args or '--help' in cmd_args: |
|
182 |
cmd_parser.parser.print_help() |
|
183 |
if ldescr: |
|
184 |
print('\nDetails:') |
|
185 |
print('%s' % ldescr) |
|
186 |
return |
|
187 |
cmd_parser.parse(cmd_args) |
|
188 |
|
|
189 |
for name, arg in instance.arguments.items(): |
|
190 |
arg.value = getattr(cmd_parser.parsed, name, arg.default) |
|
191 |
|
|
192 | 170 |
try: |
171 |
cls = subcmd.get_class() |
|
172 |
ldescr = getattr(cls, 'long_description', '') |
|
173 |
if subcmd.path == 'history_run': |
|
174 |
instance = cls(dict(cmd_parser.arguments), |
|
175 |
self.cmd_tree) |
|
176 |
else: |
|
177 |
instance = cls(dict(cmd_parser.arguments)) |
|
178 |
cmd_parser.update_arguments(instance.arguments) |
|
179 |
instance.arguments.pop('config') |
|
180 |
cmd_parser.arguments = instance.arguments |
|
181 |
cmd_parser.syntax = '%s %s' % ( |
|
182 |
subcmd.path.replace('_', ' '), cls.syntax) |
|
183 |
if '-h' in cmd_args or '--help' in cmd_args: |
|
184 |
cmd_parser.parser.print_help() |
|
185 |
if ldescr.strip(): |
|
186 |
print('\nDetails:') |
|
187 |
print('%s' % ldescr) |
|
188 |
return |
|
189 |
cmd_parser.parse(cmd_args) |
|
190 |
|
|
191 |
for name, arg in instance.arguments.items(): |
|
192 |
arg.value = getattr(cmd_parser.parsed, name, |
|
193 |
arg.default) |
|
194 |
|
|
193 | 195 |
exec_cmd(instance, |
194 | 196 |
cmd_parser.unparsed, |
195 | 197 |
cmd_parser.parser.print_help) |
Also available in: Unified diff