diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-12 16:49:23 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-12 16:49:23 +0000 |
commit | 99d7638ff5c5cddb4f23d25ad13ef122476d5679 (patch) | |
tree | 0a20bd09ae0512cb8b61dcc840d851ccd35d5b05 /ipalib/cli.py | |
parent | bc4b26ffca7b48db70006c99ddb6084542b1df88 (diff) | |
download | freeipa-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.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py index 40edc890f..ad54d77ae 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), + ) |