diff options
| author | Joel Challis <git@zvecr.com> | 2023-01-03 03:15:29 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-03 14:15:29 +1100 |
| commit | c345278101b3882a2f33b078021ab31a6129120a (patch) | |
| tree | 3b5bc671cf95fc56cc9e5eea2b62d223e44f321e /lib/python | |
| parent | 44800f119d330bb0f02f3d13c36cafe57adc20ee (diff) | |
Replace list_keyboards.sh with CLI calls (#19485)
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/qmk/cli/list/keyboards.py | 3 | ||||
| -rw-r--r-- | lib/python/qmk/keyboard.py | 10 |
2 files changed, 9 insertions, 4 deletions
diff --git a/lib/python/qmk/cli/list/keyboards.py b/lib/python/qmk/cli/list/keyboards.py index 8b6c451673..405b9210e4 100644 --- a/lib/python/qmk/cli/list/keyboards.py +++ b/lib/python/qmk/cli/list/keyboards.py | |||
| @@ -5,9 +5,10 @@ from milc import cli | |||
| 5 | import qmk.keyboard | 5 | import qmk.keyboard |
| 6 | 6 | ||
| 7 | 7 | ||
| 8 | @cli.argument('--no-resolve-defaults', arg_only=True, action='store_false', help='Ignore any "DEFAULT_FOLDER" within keyboards rules.mk') | ||
| 8 | @cli.subcommand("List the keyboards currently defined within QMK") | 9 | @cli.subcommand("List the keyboards currently defined within QMK") |
| 9 | def list_keyboards(cli): | 10 | def list_keyboards(cli): |
| 10 | """List the keyboards currently defined within QMK | 11 | """List the keyboards currently defined within QMK |
| 11 | """ | 12 | """ |
| 12 | for keyboard_name in qmk.keyboard.list_keyboards(): | 13 | for keyboard_name in qmk.keyboard.list_keyboards(cli.args.no_resolve_defaults): |
| 13 | print(keyboard_name) | 14 | print(keyboard_name) |
diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 6ddbba8fa5..0c980faf2b 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py | |||
| @@ -98,14 +98,18 @@ def keyboard_completer(prefix, action, parser, parsed_args): | |||
| 98 | return list_keyboards() | 98 | return list_keyboards() |
| 99 | 99 | ||
| 100 | 100 | ||
| 101 | def list_keyboards(): | 101 | def list_keyboards(resolve_defaults=True): |
| 102 | """Returns a list of all keyboards. | 102 | """Returns a list of all keyboards - optionally processing any DEFAULT_FOLDER. |
| 103 | """ | 103 | """ |
| 104 | # We avoid pathlib here because this is performance critical code. | 104 | # We avoid pathlib here because this is performance critical code. |
| 105 | kb_wildcard = os.path.join(base_path, "**", "rules.mk") | 105 | kb_wildcard = os.path.join(base_path, "**", "rules.mk") |
| 106 | paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path] | 106 | paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path] |
| 107 | 107 | ||
| 108 | return sorted(set(map(resolve_keyboard, map(_find_name, paths)))) | 108 | found = map(_find_name, paths) |
| 109 | if resolve_defaults: | ||
| 110 | found = map(resolve_keyboard, found) | ||
| 111 | |||
| 112 | return sorted(set(found)) | ||
| 109 | 113 | ||
| 110 | 114 | ||
| 111 | def resolve_keyboard(keyboard): | 115 | def resolve_keyboard(keyboard): |
