summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/cli.py8
-rw-r--r--ipalib/public.py2
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()