diff options
Diffstat (limited to 'ipalib/cli.py')
-rw-r--r-- | ipalib/cli.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py index e0ba11f8..40edc890 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -21,8 +21,9 @@ Functionality for Command Line Inteface. """ -import sys import re +import sys +import optparse def to_cli(name): @@ -43,6 +44,10 @@ def from_cli(cli_name): return cli_name.replace('-', '_') +def _(arg): + return arg + + class CLI(object): def __init__(self, api): self.__api = api @@ -74,4 +79,14 @@ class CLI(object): self.run_cmd(cmd) def run_cmd(self, cmd): - print 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() |