summaryrefslogtreecommitdiffstats
path: root/ipalib/cli.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-12 16:49:23 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-12 16:49:23 +0000
commit99d7638ff5c5cddb4f23d25ad13ef122476d5679 (patch)
tree0a20bd09ae0512cb8b61dcc840d851ccd35d5b05 /ipalib/cli.py
parentbc4b26ffca7b48db70006c99ddb6084542b1df88 (diff)
downloadfreeipa-99d7638ff5c5cddb4f23d25ad13ef122476d5679.tar.gz
freeipa-99d7638ff5c5cddb4f23d25ad13ef122476d5679.tar.xz
freeipa-99d7638ff5c5cddb4f23d25ad13ef122476d5679.zip
115: CLI now parses out kw args; cmd.__call__() now uses print_n_call() to give feedback on the calling
Diffstat (limited to 'ipalib/cli.py')
-rw-r--r--ipalib/cli.py28
1 files changed, 14 insertions, 14 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 40edc890..ad54d77a 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -76,17 +76,17 @@ class CLI(object):
self.print_commands()
print 'ipa: ERROR: unknown command %r' % cmd
sys.exit(2)
- self.run_cmd(cmd)
-
- def run_cmd(self, cmd):
- (options, args) = self.build_parser(cmd)
- print options
-
- def build_parser(self, cmd):
- parser = optparse.OptionParser()
- for option in self[cmd].options:
- parser.add_option('--%s' % to_cli(option.name),
- help=option.get_doc(_),
- )
-
- (options, args) parser.parse_args()
+ self.run_cmd(cmd, sys.argv[2:])
+
+ def run_cmd(self, cmd, args):
+ kw = dict(self.parse_kw(args))
+ self[cmd](**kw)
+
+ def parse_kw(self, args):
+ for arg in args:
+ m = re.match(r'^--([a-z][-a-z0-9]*)=(.+)$', arg)
+ if m is not None:
+ yield (
+ from_cli(m.group(1)),
+ m.group(2),
+ )