Fix CLI incorrectly following DEFAULT_FOLDER
(#12529)
* Attempt to sort out incorrectly following DEFAULT_FOLDER. * Fix CI checks. * qmk pyformat
This commit is contained in:
parent
0c50a9eae9
commit
b88498ba85
1 changed files with 12 additions and 7 deletions
|
@ -92,7 +92,16 @@ def list_keyboards():
|
||||||
kb_wildcard = os.path.join(base_path, "**", "rules.mk")
|
kb_wildcard = os.path.join(base_path, "**", "rules.mk")
|
||||||
paths = [path for path in glob(kb_wildcard, recursive=True) if 'keymaps' not in path]
|
paths = [path for path in glob(kb_wildcard, recursive=True) if 'keymaps' not in path]
|
||||||
|
|
||||||
return sorted(map(_find_name, paths))
|
return sorted(set(map(resolve_keyboard, map(_find_name, paths))))
|
||||||
|
|
||||||
|
|
||||||
|
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):
|
def config_h(keyboard):
|
||||||
|
@ -106,8 +115,7 @@ def config_h(keyboard):
|
||||||
"""
|
"""
|
||||||
config = {}
|
config = {}
|
||||||
cur_dir = Path('keyboards')
|
cur_dir = Path('keyboards')
|
||||||
rules = rules_mk(keyboard)
|
keyboard = Path(resolve_keyboard(keyboard))
|
||||||
keyboard = Path(rules['DEFAULT_FOLDER'] if 'DEFAULT_FOLDER' in rules else keyboard)
|
|
||||||
|
|
||||||
for dir in keyboard.parts:
|
for dir in keyboard.parts:
|
||||||
cur_dir = cur_dir / dir
|
cur_dir = cur_dir / dir
|
||||||
|
@ -125,13 +133,10 @@ def rules_mk(keyboard):
|
||||||
Returns:
|
Returns:
|
||||||
a dictionary representing the content of the entire rules.mk tree for a keyboard
|
a dictionary representing the content of the entire rules.mk tree for a keyboard
|
||||||
"""
|
"""
|
||||||
keyboard = Path(keyboard)
|
|
||||||
cur_dir = Path('keyboards')
|
cur_dir = Path('keyboards')
|
||||||
|
keyboard = Path(resolve_keyboard(keyboard))
|
||||||
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
|
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
|
||||||
|
|
||||||
if 'DEFAULT_FOLDER' in rules:
|
|
||||||
keyboard = Path(rules['DEFAULT_FOLDER'])
|
|
||||||
|
|
||||||
for i, dir in enumerate(keyboard.parts):
|
for i, dir in enumerate(keyboard.parts):
|
||||||
cur_dir = cur_dir / dir
|
cur_dir = cur_dir / dir
|
||||||
rules = parse_rules_mk_file(cur_dir / 'rules.mk', rules)
|
rules = parse_rules_mk_file(cur_dir / 'rules.mk', rules)
|
||||||
|
|
Loading…
Reference in a new issue