summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-01-03 03:15:29 +0000
committerGitHub <noreply@github.com>2023-01-03 14:15:29 +1100
commitc345278101b3882a2f33b078021ab31a6129120a (patch)
tree3b5bc671cf95fc56cc9e5eea2b62d223e44f321e /lib
parent44800f119d330bb0f02f3d13c36cafe57adc20ee (diff)
Replace list_keyboards.sh with CLI calls (#19485)
Diffstat (limited to 'lib')
-rw-r--r--lib/python/qmk/cli/list/keyboards.py3
-rw-r--r--lib/python/qmk/keyboard.py10
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
import qmk.keyboard
+@cli.argument('--no-resolve-defaults', arg_only=True, action='store_false', help='Ignore any "DEFAULT_FOLDER" within keyboards rules.mk')
@cli.subcommand("List the keyboards currently defined within QMK")
def list_keyboards(cli):
"""List the keyboards currently defined within QMK
"""
- for keyboard_name in qmk.keyboard.list_keyboards():
+ for keyboard_name in qmk.keyboard.list_keyboards(cli.args.no_resolve_defaults):
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):
return list_keyboards()
-def list_keyboards():
- """Returns a list of all keyboards.
+def list_keyboards(resolve_defaults=True):
+ """Returns a list of all keyboards - optionally processing any DEFAULT_FOLDER.
"""
# We avoid pathlib here because this is performance critical code.
kb_wildcard = os.path.join(base_path, "**", "rules.mk")
paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
- return sorted(set(map(resolve_keyboard, map(_find_name, paths))))
+ found = map(_find_name, paths)
+ if resolve_defaults:
+ found = map(resolve_keyboard, found)
+
+ return sorted(set(found))
def resolve_keyboard(keyboard):