cli: don't select unpaired device for config command

This commit is contained in:
Peter F. Patel-Schneider 2021-02-10 11:00:17 -05:00
parent 4b52b77348
commit eb0d939d1a
4 changed files with 19 additions and 9 deletions

View File

@ -156,7 +156,7 @@ def _find_device(receivers, name):
if number and number <= r.max_devices:
dev = r[number]
if dev:
return dev
yield dev
else: # wired device, make a device list from it
r = [r]
@ -165,9 +165,10 @@ def _find_device(receivers, name):
name == dev.serial.lower() or name == dev.codename.lower() or name == str(dev.kind).lower()
or name in dev.name.lower()
):
return dev
yield dev
raise Exception("no device found matching '%s'" % name)
# raise Exception("no device found matching '%s'" % name)
def run(cli_args=None, hidraw_path=None):

View File

@ -51,10 +51,15 @@ def run(receivers, args, find_receiver, find_device):
assert args.device
device_name = args.device.lower()
dev = find_device(receivers, device_name)
if not dev.ping():
raise Exception('%s is offline' % dev.name)
dev = None
for dev in find_device(receivers, device_name):
if dev.ping():
break
dev = None
if not dev:
raise Exception("no online device found matching '%s'" % device_name)
if not args.setting: # print all settings, so first set them all up
if not dev.settings:

View File

@ -287,6 +287,8 @@ def run(devices, args, find_receiver, find_device):
_print_receiver(dev)
return
dev = find_device(devices, device_name)
assert dev
dev = next(find_device(devices, device_name), None)
if not dev:
raise Exception("no device found matching '%s'" % device_name)
_print_device(dev)

View File

@ -25,7 +25,9 @@ def run(receivers, args, find_receiver, find_device):
assert args.device
device_name = args.device.lower()
dev = find_device(receivers, device_name)
dev = next(find_device(receivers, device_name), None)
if not dev:
raise Exception("no device found matching '%s'" % device_name)
if not dev.receiver.may_unpair:
print(