Mini Shell
"""
Console/terminal user interface functionality.
"""
from fabric.api import prompt
def confirm(question, default=True):
"""
Ask user a yes/no question and return their response as True or False.
``question`` should be a simple, grammatically complete question such as
"Do you wish to continue?", and will have a string similar to " [Y/n] "
appended automatically. This function will *not* append a question mark for
you.
By default, when the user presses Enter without typing anything, "yes" is
assumed. This can be changed by specifying ``default=False``.
"""
# Set up suffix
if default:
suffix = "Y/n"
else:
suffix = "y/N"
# Loop till we get something we like
while True:
response = prompt("%s [%s] " % (question, suffix)).lower()
# Default
if not response:
return default
# Yes
if response in ['y', 'yes']:
return True
# No
if response in ['n', 'no']:
return False
# Didn't get empty, yes or no, so complain and loop
print("I didn't understand you. Please specify '(y)es' or '(n)o'.")
Zerion Mini Shell 1.0