From 337c9964d42066368460da9a7c0d770142e2d1c3 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Wed, 13 Aug 2008 06:25:42 +0000 Subject: 145: Added new CLI.parse() method; added corresponding unit tests --- ipalib/cli.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'ipalib/cli.py') diff --git a/ipalib/cli.py b/ipalib/cli.py index 6f0305d6..bf96d369 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -97,7 +97,9 @@ class CLI(object): sys.exit(2) self.run_cmd(cmd, sys.argv[2:]) - def run_cmd(self, cmd, args): + def run_cmd(self, cmd, given): + print self.parse(given) + sys.exit(0) kw = dict(self.parse_kw(args)) self[cmd](**kw) @@ -110,6 +112,18 @@ class CLI(object): m.group(2), ) + def parse(self, given): + args = [] + kw = {} + for g in given: + m = re.match(r'^--([a-z][-a-z0-9]*)=(.+)$', g) + if m: + kw[from_cli(m.group(1))] = m.group(2) + else: + args.append(g) + return (args, kw) + + def __get_mcl(self): """ Returns the Max Command Length. -- cgit