summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-04 07:18:26 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-04 07:18:26 +0000
commit71d36aa6a0b9627ae818d116c7240197a62cff74 (patch)
treec556490ba992ce753dd0a0d5a6a3d0e81b12f71d /ipalib/public.py
parent01b73e6910cbadd1867256e71fb982209669a8da (diff)
downloadfreeipa.git-71d36aa6a0b9627ae818d116c7240197a62cff74.tar.gz
freeipa.git-71d36aa6a0b9627ae818d116c7240197a62cff74.tar.xz
freeipa.git-71d36aa6a0b9627ae818d116c7240197a62cff74.zip
258: Added some experimental features for interactively prompting for values
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index eb94ac52..6220acc0 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -169,6 +169,10 @@ class Option(plugable.ReadOnly):
return self.type.values
return tuple()
+ def __call__(self, value, **kw):
+ pass
+
+
class Command(plugable.Plugin):
__public__ = frozenset((
@@ -178,6 +182,7 @@ class Command(plugable.Plugin):
'validate',
'execute',
'__call__',
+ 'smart_option_order',
'Option',
))
__Option = None
@@ -257,6 +262,17 @@ class Command(plugable.Plugin):
self.validate(**kw)
self.execute(**kw)
+ def smart_option_order(self):
+ def get_key(option):
+ if option.required:
+ if option.default_from is None:
+ return 0
+ return 1
+ return 2
+ for option in sorted(self.Option(), key=get_key):
+ yield option
+
+
class Object(plugable.Plugin):
__public__ = frozenset((