add support for in-tree keymap.json (wip)

This commit is contained in:
Zach White 2021-09-15 19:15:02 -07:00
parent 3f9e745b71
commit 0d9d1d0414
9 changed files with 35 additions and 24 deletions

View file

@ -106,15 +106,22 @@ def info_json(keyboard, *, overrides=None):
return info_data
def get_keyboard_overrides(keyboard):
def get_keyboard_overrides(keyboard, keymap=None):
"""Checks for keyboard_overrides.json in the keyboard build directory and returns them if it exists.
"""
keyboard_filesafe = keyboard.replace('/', '_')
keyboard_output = Path(f'{KEYBOARD_OUTPUT_PREFIX}{keyboard_filesafe}')
keyboard_overrides_file = keyboard_output / 'keyboard_overrides.json'
if not keymap:
return None
if keyboard_overrides_file.exists():
return json.load(keyboard_overrides_file.open('r', encoding='utf-8'))
keyboard_filesafe = keyboard.replace('/', '_')
keymap_filesafe = f'{keyboard_filesafe}_{keymap}' if keymap else keyboard_filesafe
keymap_output = Path(f'{KEYBOARD_OUTPUT_PREFIX}{keymap_filesafe}')
keymap_file = keymap_output / 'keymap.json'
if keymap_file.exists():
keymap_json = json.load(keymap_file.open('r', encoding='utf-8'))
if 'keyboard_overrides' in keymap_json:
return keymap_json['keyboard_overrides']
def _extract_features(info_data, rules):