From bc4b26ffca7b48db70006c99ddb6084542b1df88 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Tue, 12 Aug 2008 02:03:47 +0000 Subject: 114: Fixed cmd.__get_options(); more work on CLI --- ipalib/cli.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'ipalib/cli.py') 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() -- cgit