ubuntutools.question: Catch EOF and SIGINT on all input and bail out.

(LP: #1037488)
This commit is contained in:
Stefano Rivera 2012-10-08 11:17:50 +02:00
parent e30a6e51a7
commit 73461fca08
2 changed files with 13 additions and 3 deletions

2
debian/changelog vendored
View File

@ -17,6 +17,8 @@ ubuntu-dev-tools (0.144) UNRELEASED; urgency=low
- Explain that backports aren't to fix bugs.
* sponsor-patch: Don't fall over bugs targetted at the development release
(LP: #936014)
* ubuntutools.question: Catch EOF and SIGINT on all input and bail out.
(LP: #1037488)
[ Benjamin Drung ]
* seeded-in-ubuntu: State in error message that it takes a source package.

View File

@ -55,7 +55,11 @@ class Question(object):
selected = None
while selected not in self.options:
selected = raw_input(question).strip().lower()
try:
selected = raw_input(question).strip().lower()
except (EOFError, KeyboardInterrupt):
print '\nAborting as requested.'
sys.exit(1)
if selected == "":
selected = default
else:
@ -81,7 +85,11 @@ def input_number(question, min_number, max_number, default=None):
question += "? "
selected = None
while selected < min_number or selected > max_number:
selected = raw_input(question).strip()
try:
selected = raw_input(question).strip()
except (EOFError, KeyboardInterrupt):
print '\nAborting as requested.'
sys.exit(1)
if default and selected == "":
selected = default
else:
@ -106,7 +114,7 @@ def confirmation_prompt(message=None, action=None):
message = 'Press [Enter] to %s. Press [Ctrl-C] to abort now.' % action
try:
raw_input(message)
except KeyboardInterrupt:
except (EOFError, KeyboardInterrupt):
print '\nAborting as requested.'
sys.exit(1)