diff options
| author | Erovia <[email protected]> | 2019-11-07 19:53:03 +0100 | 
|---|---|---|
| committer | skullydazed <[email protected]> | 2020-01-11 12:18:30 -0800 | 
| commit | 8f47e62b36cae15f989aaaa93caf05d4de258fb7 (patch) | |
| tree | 52004e7cac337ae133d095921e8497931d8786af /lib/python | |
| parent | e905d86fc5ba839595ba8472f99f74250b053a47 (diff) | |
| download | qmk_firmware-8f47e62b36cae15f989aaaa93caf05d4de258fb7.tar.gz qmk_firmware-8f47e62b36cae15f989aaaa93caf05d4de258fb7.zip | |
Make the udev rules easier to read and manage
Diffstat (limited to 'lib/python')
| -rwxr-xr-x | lib/python/qmk/cli/doctor.py | 29 | 
1 files changed, 19 insertions, 10 deletions
| diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 80bd013b21..28bf57a7d9 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -2,6 +2,7 @@  Check up for QMK environment.  """ +import os  import platform  import shutil  import subprocess @@ -9,6 +10,13 @@ import glob  from milc import cli +def _udev_rule(vid, pid = None): +    """ Helper function that return udev rules +    """ +    if pid: +        return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid) +    else: +        return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", MODE:="0666"' % vid  @cli.subcommand('Basic QMK environment checks')  def doctor(cli): @@ -18,7 +26,6 @@ def doctor(cli):      TODO(unclaimed):          * [ ] Compile a trivial program with each compiler -        * [ ] Check for udev entries on linux      """      cli.log.info('QMK Doctor is checking your environment.') @@ -50,15 +57,17 @@ def doctor(cli):          # Checking for udev rules          udev_dir = "/etc/udev/rules.d/"          # These are the recommended udev rules -        desired_rules = {"dfu": {'SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE:="0666"', -                                 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE:="0666"', -                                 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="0666"'}, -                         "tmk": {'SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"'}, -                         "input-club": {'SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"'}, -                         "stm32": {'SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666"', -                                   'SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"'}, -                         "caterina": {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', -                                      'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}} +        desired_rules = dict(dfu = {_udev_rule("03eb", "2ff4"),_udev_rule("03eb", "2ffb"), _udev_rule("03eb", "2ff0")}, + +                             tmk = {_udev_rule("feed")}, + +                             input_club = {_udev_rule("1c11")}, + +                             stm32 = {_udev_rule("1eaf", "0003"),_udev_rule("0483", "df11")}, + +                             caterina = {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', +                                         'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'} +                             )          if os.path.exists(udev_dir):              udev_rules = [rule for rule in glob.iglob(os.path.join(udev_dir, "*.rules")) if os.path.isfile(rule)]              # Collect all rules from the config files | 
