~ruther/qmk_firmware

b88498ba85aaf2fdd955ee9cbae6cffb327497de — Nick Brassel 4 years ago 0c50a9e
Fix CLI incorrectly following `DEFAULT_FOLDER` (#12529)

* Attempt to sort out incorrectly following DEFAULT_FOLDER.

* Fix CI checks.

* qmk pyformat
1 files changed, 12 insertions(+), 7 deletions(-)

M lib/python/qmk/keyboard.py
M lib/python/qmk/keyboard.py => lib/python/qmk/keyboard.py +12 -7
@@ 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)