diff options
Diffstat (limited to 'lib/spack/llnl/util/tty/__init__.py')
-rw-r--r-- | lib/spack/llnl/util/tty/__init__.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/spack/llnl/util/tty/__init__.py b/lib/spack/llnl/util/tty/__init__.py index 40cae11200..652d1cc1a8 100644 --- a/lib/spack/llnl/util/tty/__init__.py +++ b/lib/spack/llnl/util/tty/__init__.py @@ -114,6 +114,33 @@ def get_number(prompt, **kwargs): return number +def get_yes_or_no(prompt, **kwargs): + default_value = kwargs.get('default', None) + + if default_value is None: + prompt += ' [y/n] ' + elif default_value is True: + prompt += ' [Y/n] ' + elif default_value is False: + prompt += ' [y/N] ' + else: + raise ValueError("default for get_yes_no() must be True, False, or None.") + + result = None + while result is None: + ans = raw_input(prompt).lower() + if not ans: + result = default_value + if result is None: + print "Please enter yes or no." + else: + if ans == 'y' or ans == 'yes': + result = True + elif ans == 'n' or ans == 'no': + result = False + return result + + def hline(label=None, **kwargs): """Draw an optionally colored or labeled horizontal line. Options: |