summaryrefslogtreecommitdiff
path: root/Tools/Scripts/webkitpy/common/system/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitpy/common/system/user.py')
-rw-r--r--Tools/Scripts/webkitpy/common/system/user.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/Tools/Scripts/webkitpy/common/system/user.py b/Tools/Scripts/webkitpy/common/system/user.py
index 262b97944..c49429c0d 100644
--- a/Tools/Scripts/webkitpy/common/system/user.py
+++ b/Tools/Scripts/webkitpy/common/system/user.py
@@ -90,13 +90,21 @@ class User(object):
def _wait_on_list_response(cls, list_items, can_choose_multiple, raw_input):
while True:
if can_choose_multiple:
- response = cls.prompt("Enter one or more numbers (comma-separated), or \"all\": ", raw_input=raw_input)
+ response = cls.prompt("Enter one or more numbers (comma-separated) or ranges (e.g. 3-7), or \"all\": ", raw_input=raw_input)
if not response.strip() or response == "all":
return list_items
+
try:
- indices = [int(r) - 1 for r in re.split("\s*,\s*", response)]
+ indices = []
+ for value in re.split("\s*,\s*", response):
+ parts = value.split('-')
+ if len(parts) == 2:
+ indices += range(int(parts[0]) - 1, int(parts[1]))
+ else:
+ indices.append(int(value) - 1)
except ValueError, err:
continue
+
return [list_items[i] for i in indices]
else:
try: