def config_h(keyboard): """Parses all the config.h files for a keyboard. Args: keyboard: name of the keyboard Returns: a dictionary representing the content of the entire config.h tree for a keyboard """ config = {} cur_dir = Path('keyboards') keyboard = Path(resolve_keyboard(keyboard)) for dir in keyboard.parts: cur_dir = cur_dir / dir config = {**config, **parse_config_h_file(cur_dir / 'config.h')} return config
def config_h(keyboard): """Parses all the config.h files for a keyboard. Args: keyboard: name of the keyboard Returns: a dictionary representing the content of the entire config.h tree for a keyboard """ config = {} cur_dir = Path('keyboards') rules = rules_mk(keyboard) keyboard = Path(rules['DEFAULT_FOLDER'] if 'DEFAULT_FOLDER' in rules else keyboard) for dir in keyboard.parts: cur_dir = cur_dir / dir config = {**config, **parse_config_h_file(cur_dir / 'config.h')} return config
def keymap_json(keyboard, keymap): """Generate the info.json data for a specific keymap. """ keymap_folder = locate_keymap(keyboard, keymap).parent # Files to scan keymap_config = keymap_folder / 'config.h' keymap_rules = keymap_folder / 'rules.mk' keymap_file = keymap_folder / 'keymap.json' # Build the info.json file kb_info_json = info_json(keyboard) # Merge in the data from keymap.json km_info_json = keymap_json_config(keyboard, keymap) if keymap_file.exists() else {} deep_update(kb_info_json, km_info_json) # Merge in the data from config.h, and rules.mk _extract_rules_mk(kb_info_json, parse_rules_mk_file(keymap_rules)) _extract_config_h(kb_info_json, parse_config_h_file(keymap_config)) return kb_info_json