summary refs log tree commit diff
path: root/lib/python
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/python
parent44800f119d330bb0f02f3d13c36cafe57adc20ee (diff)
Replace list_keyboards.sh with CLI calls (#19485)
Diffstat (limited to 'lib/python')
-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):