summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-01-01 00:46:17 +0000
committerGitHub <noreply@github.com>2023-01-01 11:46:17 +1100
commit5a3594366f2bd8a4aed34f6d085d9c516b9dbc32 (patch)
treec37ea68cbb1bf1e409f7d299e4a87167c6d94f09 /util
parent422fd8aed8d7a985a4f090deb0d166ec81db8cd9 (diff)
Initial DD keycode regen workflow (#19400)
Diffstat (limited to 'util')
-rw-r--r--util/lang_conv.py65
-rwxr-xr-xutil/lang_gen.sh8
-rwxr-xr-xutil/regen.sh9
3 files changed, 9 insertions, 73 deletions
diff --git a/util/lang_conv.py b/util/lang_conv.py
deleted file mode 100644
index a0da6c392d..0000000000
--- a/util/lang_conv.py
+++ /dev/null
@@ -1,65 +0,0 @@
1from pathlib import Path
2
3langs = set()
4files = Path('quantum/keymap_extras/').glob('keymap_*.h')
5for file in files:
6 langs.add(file.stem.replace('keymap_', ''))
7
8for lang in langs:
9 try:
10 file = Path(f'quantum/keymap_extras/keymap_{lang}.h')
11 print(f'Reading:{file}')
12 collect = None
13 out = []
14 out += ['{']
15 out += [' "aliases": {']
16 lines = file.read_text(encoding='utf-8').split('\n')
17 for line in lines:
18
19 if line.startswith("// Row"):
20 # print(line)
21 continue
22 elif line.startswith("/*******************************************************************************"):
23 raise Exception(f'Skipping:{file}')
24 elif '/*' in line:
25 collect = [line]
26 elif '*/' in line:
27 collect += [line]
28 if 'copyright' in collect[0].lower():
29 collect = None
30 continue
31 out += collect
32 collect = None
33 elif collect:
34 collect += [line]
35
36 elif '#define' in line:
37 define = line.split()
38 while len(define) < 5:
39 define.append("")
40
41 if define[4] == "(backslash)":
42 define[4] = '\\\\'
43
44 define[4] = " ".join(define[4:]).strip()
45 define[4] = define[4].replace('"', '\\"')
46
47 if define[4]:
48 out += [f' "{define[2]}": {{']
49 out += [f' "key": "{define[1]}",']
50 out += [f' "label": "{define[4]}",']
51 out += [f' }}']
52 else:
53 out += [f' "{define[2]}": {{']
54 out += [f' "key": "{define[1]}"']
55 out += [f' }}']
56
57 out += [' }']
58 out += ['}']
59
60 dump = Path(f'data/constants/keycodes/extras/keycodes_{lang}_0.0.1.hjson')
61 print(f'Writing:{dump}')
62 dump.write_text("\n".join(out), encoding='utf-8')
63
64 except Exception as e:
65 print(e)
diff --git a/util/lang_gen.sh b/util/lang_gen.sh
deleted file mode 100755
index 0b062b1a09..0000000000
--- a/util/lang_gen.sh
+++ /dev/null
@@ -1,8 +0,0 @@
1#!/bin/bash
2
3for lang in $(find data/constants/keycodes/extras/ -type f -printf "%f\n" | sed "s/keycodes_//g" | sed "s/_[0-9].*//"); do
4 data=$(qmk generate-keycode-extras --version latest --lang $lang)
5 if [ "$?" == "0" ]; then
6 echo "$data" > quantum/keymap_extras/keymap_$lang.h
7 fi
8done
diff --git a/util/regen.sh b/util/regen.sh
new file mode 100755
index 0000000000..e4c52ec9a1
--- /dev/null
+++ b/util/regen.sh
@@ -0,0 +1,9 @@
1#!/bin/bash
2set -e
3
4qmk generate-rgb-breathe-table -o quantum/rgblight/rgblight_breathe_table.h
5qmk generate-keycodes --version latest -o quantum/keycodes.h
6
7for lang in $(find data/constants/keycodes/extras/ -type f -printf "%f\n" | sed "s/keycodes_\(.*\)_[0-9].*/\1/"); do
8 qmk generate-keycode-extras --version latest --lang $lang -o quantum/keymap_extras/keymap_$lang.h
9done