diff options
-rw-r--r-- | ipalib/cli.py | 8 | ||||
-rw-r--r-- | ipalib/public.py | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py index 54693ffd..594e2812 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -31,6 +31,10 @@ import plugable import ipa_types +def exit_error(error): + sys.exit('ipa: ERROR: %s' % error) + + def to_cli(name): """ Takes a Python identifier and transforms it into form suitable for the @@ -195,6 +199,10 @@ class CLI(object): def run_cmd(self, cmd, argv): (args, kw) = self.parse(cmd, argv) + try: + args = cmd.group_args(*args) + except errors.ArgumentError, e: + exit_error('%s %s' % (to_cli(cmd.name), e.error)) self.run_interactive(cmd, args, kw) def run_interactive(self, cmd, args, kw): diff --git a/ipalib/public.py b/ipalib/public.py index 84d321be..9f12a45b 100644 --- a/ipalib/public.py +++ b/ipalib/public.py @@ -225,9 +225,9 @@ class Command(plugable.Plugin): 'execute', '__call__', 'smart_option_order', - 'Option', 'args', 'options', + 'group_args', )) __Option = None takes_options = tuple() |