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:
		| @@ -92,7 +92,16 @@ def list_keyboards(): | ||||
|     kb_wildcard = os.path.join(base_path, "**", "rules.mk") | ||||
|     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): | ||||
| @@ -106,8 +115,7 @@ def config_h(keyboard): | ||||
|     """ | ||||
|     config = {} | ||||
|     cur_dir = Path('keyboards') | ||||
|     rules = rules_mk(keyboard) | ||||
|     keyboard = Path(rules['DEFAULT_FOLDER'] if 'DEFAULT_FOLDER' in rules else keyboard) | ||||
|     keyboard = Path(resolve_keyboard(keyboard)) | ||||
|  | ||||
|     for dir in keyboard.parts: | ||||
|         cur_dir = cur_dir / dir | ||||
| @@ -125,13 +133,10 @@ def rules_mk(keyboard): | ||||
|     Returns: | ||||
|         a dictionary representing the content of the entire rules.mk tree for a keyboard | ||||
|     """ | ||||
|     keyboard = Path(keyboard) | ||||
|     cur_dir = Path('keyboards') | ||||
|     keyboard = Path(resolve_keyboard(keyboard)) | ||||
|     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): | ||||
|         cur_dir = cur_dir / dir | ||||
|         rules = parse_rules_mk_file(cur_dir / 'rules.mk', rules) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user