summaryrefslogtreecommitdiffstats
path: root/ipapython/install/core.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-10-27 09:23:22 +0200
committerJan Cholasta <jcholast@redhat.com>2016-11-11 12:17:25 +0100
commita641e279ff76e09f59c4d5fef1dc1f9355dbacf7 (patch)
treedda2f55355b64d028c42cbcb88ff4281f1b6329d /ipapython/install/core.py
parent8c742b1539591b49474fe8ec871e1b523e9898bd (diff)
downloadfreeipa-a641e279ff76e09f59c4d5fef1dc1f9355dbacf7.tar.gz
freeipa-a641e279ff76e09f59c4d5fef1dc1f9355dbacf7.tar.xz
freeipa-a641e279ff76e09f59c4d5fef1dc1f9355dbacf7.zip
install: improve CLI positional argument handling
Instead of specifying which knobs should be positional arguments in cli.install_tool(), do it using a flag in knob definition, where the rest of CLI configuration is. As a side effect, the usage string for CLI tools can now be generated automatically. https://fedorahosted.org/freeipa/ticket/6392 Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'ipapython/install/core.py')
-rw-r--r--ipapython/install/core.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/ipapython/install/core.py b/ipapython/install/core.py
index e94c0f2c0..0a208ca66 100644
--- a/ipapython/install/core.py
+++ b/ipapython/install/core.py
@@ -110,6 +110,7 @@ class KnobBase(PropertyBase):
sensitive = False
deprecated = False
description = None
+ cli_positional = False
cli_name = None
cli_short_name = None
cli_aliases = None
@@ -141,8 +142,9 @@ class KnobBase(PropertyBase):
def Knob(type_or_base, default=_missing, sensitive=_missing,
- deprecated=_missing, description=_missing, cli_name=_missing,
- cli_short_name=_missing, cli_aliases=_missing, cli_metavar=_missing):
+ deprecated=_missing, description=_missing, cli_positional=_missing,
+ cli_name=_missing, cli_short_name=_missing, cli_aliases=_missing,
+ cli_metavar=_missing):
class_dict = {}
class_dict['_order'] = next(_counter)
@@ -159,6 +161,8 @@ def Knob(type_or_base, default=_missing, sensitive=_missing,
class_dict['deprecated'] = deprecated
if description is not _missing:
class_dict['description'] = description
+ if cli_positional is not _missing:
+ class_dict['cli_positional'] = cli_positional
if cli_name is not _missing:
class_dict['cli_name'] = cli_name
if cli_short_name is not _missing: