|
@@ -27,6 +27,23 @@ def _resolve_keycode_specs(output_folder):
|
|
|
output_file = output_folder / f'constants/keycodes_{version}.json'
|
|
|
output_file.write_text(json.dumps(overall, indent=4), encoding='utf-8')
|
|
|
|
|
|
+ # Purge files consumed by 'load_spec'
|
|
|
+ shutil.rmtree(output_folder / 'constants/keycodes/')
|
|
|
+
|
|
|
+
|
|
|
+def _filtered_copy(src, dst):
|
|
|
+ src = Path(src)
|
|
|
+ dst = Path(dst)
|
|
|
+
|
|
|
+ if dst.suffix == '.hjson':
|
|
|
+ data = json_load(src)
|
|
|
+
|
|
|
+ dst = dst.with_suffix('.json')
|
|
|
+ dst.write_text(json.dumps(data, indent=4), encoding='utf-8')
|
|
|
+ return dst
|
|
|
+
|
|
|
+ return shutil.copy2(src, dst)
|
|
|
+
|
|
|
|
|
|
def _filtered_keyboard_list():
|
|
|
"""Perform basic filtering of list_keyboards
|
|
@@ -58,7 +75,7 @@ def generate_api(cli):
|
|
|
shutil.rmtree(BUILD_API_PATH)
|
|
|
|
|
|
shutil.copytree(TEMPLATE_PATH, BUILD_API_PATH)
|
|
|
- shutil.copytree(DATA_PATH, v1_dir)
|
|
|
+ shutil.copytree(DATA_PATH, v1_dir, copy_function=_filtered_copy)
|
|
|
|
|
|
# Filter down when required
|
|
|
keyboard_list = _filtered_keyboard_list()
|