|
|
@@ -99,8 +99,6 @@ def find_keyboard_from_dir():
|
|
|
keymap_index = len(current_path.parts) - current_path.parts.index('keymaps') - 1
|
|
|
current_path = current_path.parents[keymap_index]
|
|
|
|
|
|
- current_path = resolve_keyboard(current_path)
|
|
|
-
|
|
|
if qmk.path.is_keyboard(current_path):
|
|
|
return str(current_path)
|
|
|
|
|
|
@@ -121,7 +119,7 @@ def find_readme(keyboard):
|
|
|
def keyboard_folder(keyboard):
|
|
|
"""Returns the actual keyboard folder.
|
|
|
|
|
|
- This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
|
|
|
+ This checks aliases to resolve the actual path for a keyboard.
|
|
|
"""
|
|
|
aliases = keyboard_alias_definitions()
|
|
|
|
|
|
@@ -131,8 +129,6 @@ def keyboard_folder(keyboard):
|
|
|
if keyboard == last_keyboard:
|
|
|
break
|
|
|
|
|
|
- keyboard = resolve_keyboard(keyboard)
|
|
|
-
|
|
|
if not qmk.path.is_keyboard(keyboard):
|
|
|
raise ValueError(f'Invalid keyboard: {keyboard}')
|
|
|
|
|
|
@@ -158,7 +154,7 @@ def keyboard_aliases(keyboard):
|
|
|
def keyboard_folder_or_all(keyboard):
|
|
|
"""Returns the actual keyboard folder.
|
|
|
|
|
|
- This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
|
|
|
+ This checks aliases to resolve the actual path for a keyboard.
|
|
|
If the supplied argument is "all", it returns an AllKeyboards object.
|
|
|
"""
|
|
|
if keyboard == 'all':
|
|
|
@@ -179,32 +175,18 @@ def keyboard_completer(prefix, action, parser, parsed_args):
|
|
|
return list_keyboards()
|
|
|
|
|
|
|
|
|
-def list_keyboards(resolve_defaults=True):
|
|
|
- """Returns a list of all keyboards - optionally processing any DEFAULT_FOLDER.
|
|
|
+def list_keyboards():
|
|
|
+ """Returns a list of all keyboards
|
|
|
"""
|
|
|
# We avoid pathlib here because this is performance critical code.
|
|
|
- paths = []
|
|
|
- for marker in ['rules.mk', 'keyboard.json']:
|
|
|
- kb_wildcard = os.path.join(base_path, "**", marker)
|
|
|
- paths += [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
|
|
|
+ kb_wildcard = os.path.join(base_path, "**", 'keyboard.json')
|
|
|
+ paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
|
|
|
|
|
|
found = map(_find_name, paths)
|
|
|
- if resolve_defaults:
|
|
|
- found = map(resolve_keyboard, found)
|
|
|
|
|
|
return sorted(set(found))
|
|
|
|
|
|
|
|
|
-@lru_cache(maxsize=None)
|
|
|
-def resolve_keyboard(keyboard):
|
|
|
- cur_dir = Path('keyboards')
|
|
|
- rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
|
|
|
- while 'DEFAULT_FOLDER' in rules and keyboard != rules['DEFAULT_FOLDER']:
|
|
|
- keyboard = rules['DEFAULT_FOLDER']
|
|
|
- rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
|
|
|
- return keyboard
|
|
|
-
|
|
|
-
|
|
|
def config_h(keyboard):
|
|
|
"""Parses all the config.h files for a keyboard.
|
|
|
|
|
|
@@ -216,7 +198,7 @@ def config_h(keyboard):
|
|
|
"""
|
|
|
config = {}
|
|
|
cur_dir = Path('keyboards')
|
|
|
- keyboard = Path(resolve_keyboard(keyboard))
|
|
|
+ keyboard = Path(keyboard)
|
|
|
|
|
|
for dir in keyboard.parts:
|
|
|
cur_dir = cur_dir / dir
|
|
|
@@ -235,7 +217,7 @@ def rules_mk(keyboard):
|
|
|
a dictionary representing the content of the entire rules.mk tree for a keyboard
|
|
|
"""
|
|
|
cur_dir = Path('keyboards')
|
|
|
- keyboard = Path(resolve_keyboard(keyboard))
|
|
|
+ keyboard = Path(keyboard)
|
|
|
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
|
|
|
|
|
|
for i, dir in enumerate(keyboard.parts):
|