summaryrefslogtreecommitdiff
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
5import qmk.keyboard 5import 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")
9def list_keyboards(cli): 10def 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
101def list_keyboards(): 101def 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
111def resolve_keyboard(keyboard): 115def resolve_keyboard(keyboard):