1234567891011121314151617181920212223242526272829303132333435363738 |
- """
- 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'.")
|