summaryrefslogtreecommitdiff
path: root/util/vial_generate_definition.py
blob: 0981f096a33cc054044c4ba478c20468d691676f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3
import sys
import json
import lzma

def main():
    if len(sys.argv) != 3:
        print("Usage: vial_generate_defition.py path-to-vial.json path-to-output.h")
        return 1

    with open(sys.argv[1], "r") as inf:
        data = inf.read()

    # minify json
    data = json.dumps(json.loads(data), separators=(',', ':')).strip()

    # compress
    data = lzma.compress(data.encode("utf-8"))

    with open(sys.argv[2], "w") as outf:
        outf.write("#pragma once\n")
        outf.write("static const unsigned char keyboard_definition[] PROGMEM = {")
        arr = ["0x{:02X}".format(b) for b in data]
        outf.write(", ".join(arr))
        outf.write("};\n")

    return 0

if __name__ == "__main__":
    sys.exit(main())