diff options
author | Ryan <[email protected]> | 2020-06-19 04:37:47 +1000 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-18 19:37:47 +0100 |
commit | db80209e697770cca0ba44e437efa548247b387f (patch) | |
tree | c24f46b26d83f23aeaff302968e84b07c25519e2 /lib/python/qmk/cli | |
parent | 716924de3e07eb4a6f39a9c8da9ba0fc64c7f796 (diff) | |
download | qmk_firmware-db80209e697770cca0ba44e437efa548247b387f.tar.gz qmk_firmware-db80209e697770cca0ba44e437efa548247b387f.zip |
Parse version better in `qmk doctor` GCC version checks (#9324)0.9.13
Diffstat (limited to 'lib/python/qmk/cli')
-rwxr-xr-x | lib/python/qmk/cli/doctor.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 011c3dd3c2..4d7ba52181 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -3,6 +3,7 @@ Check out the user's QMK environment and make sure it's ready to compile. """ import platform +import re import shutil import subprocess from pathlib import Path @@ -50,6 +51,16 @@ def _deprecated_udev_rule(vid, pid=None): return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", MODE:="0666"' % vid +def parse_gcc_version(version): + m = re.match(r"(\d+)(?:\.(\d+))?(?:\.(\d+))?", version) + + return { + 'major': int(m.group(1)), + 'minor': int(m.group(2)) if m.group(2) else 0, + 'patch': int(m.group(3)) if m.group(3) else 0 + } + + def check_arm_gcc_version(): """Returns True if the arm-none-eabi-gcc version is not known to cause problems. """ @@ -66,8 +77,8 @@ def check_avr_gcc_version(): if 'output' in ESSENTIAL_BINARIES['avr-gcc']: version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip() - major, minor, rest = version_number.split('.', 2) - if int(major) > 8: + parsed_version = parse_gcc_version(version_number) + if parsed_version['major'] > 8: cli.log.error('We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.') return False |