If any params marked alwaysask are provided then prompt for none of them.

ticket 604
This commit is contained in:
Rob Crittenden
2010-12-08 17:24:26 -05:00
parent bfcf25cf54
commit 5b7abefb42

View File

@@ -889,9 +889,14 @@ class cli(backend.Executioner):
``self.env.prompt_all`` is ``True``, this method will prompt for any
params that have a missing values, even if the param is optional.
"""
honor_alwaysask = True
for param in cmd.params():
if param.alwaysask and param.name in kw:
honor_alwaysask = False
break
for param in cmd.params():
if (param.required and param.name not in kw) or \
param.alwaysask or self.env.prompt_all:
(param.alwaysask and honor_alwaysask) or self.env.prompt_all:
if param.password:
kw[param.name] = self.Backend.textui.prompt_password(
param.label