Skip to content

Commit ab518cd

Browse files
committed
Small user-friendliness improvements to evtest
1 parent 7fcd680 commit ab518cd

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

evdev/evtest.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def main():
5858
for device in devices:
5959
device.grab()
6060

61-
print('Listening for events ...\n')
61+
print('Listening for events (press ctrl-c to exit) ...')
6262
fd_to_device = {dev.fd: dev for dev in devices}
6363
while True:
6464
r, w, e = select.select(fd_to_device, [], [])
@@ -92,11 +92,17 @@ def devicenum(device_path):
9292
print('\n'.join(dev_lines))
9393
print()
9494

95-
choice = input('Select devices [0-%s]: ' % (len(dev_lines)-1))
96-
choice = choice.split()
95+
choices = input('Select devices [0-%s]: ' % (len(dev_lines)-1))
9796

98-
print()
99-
return [devices[int(num)] for num in choice]
97+
try:
98+
choices = choices.split()
99+
choices = [devices[int(num)] for num in choices]
100+
except ValueError:
101+
msg = 'error: invalid input - please enter one or more numbers separated by spaces'
102+
print(msg, file=sys.stderr)
103+
sys.exit(1)
104+
105+
return choices
100106

101107

102108
def print_capabilities(device):
@@ -146,4 +152,8 @@ def print_event(e):
146152

147153

148154
if __name__ == '__main__':
149-
sys.exit(main())
155+
try:
156+
ret = main()
157+
except KeyboardInterrupt:
158+
ret = 0
159+
sys.exit(ret)

0 commit comments

Comments
 (0)