diff options
Diffstat (limited to 'keyboards/handwired/ferris/keymaps/json2crab.py')
-rwxr-xr-x | keyboards/handwired/ferris/keymaps/json2crab.py | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/keyboards/handwired/ferris/keymaps/json2crab.py b/keyboards/handwired/ferris/keymaps/json2crab.py deleted file mode 100755 index a32429fae5..0000000000 --- a/keyboards/handwired/ferris/keymaps/json2crab.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import sys -import json - -indent_level=4 - -def parse_cli(): - parser = argparse.ArgumentParser(description='Ferris keymap formatter') - parser.add_argument("--input", type=argparse.FileType('r'), - default=sys.stdin, help="Input keymap (json file produced by qmk configurator)") - return parser.parse_args() - -def col_index(key_index): - if key_index < 30: - col = key_index % 5 - else: - col = key_index % 2 - return col - -def format_layers(layers): - formatted = indent_level * " " + "\"layers\": [\n" - max_key_length = {} - for layer in layers: - for (index, keycode) in enumerate(layer): - col = col_index(index) - max_length = max_key_length.get(col) - if (not max_length) or len(keycode) > max_length: - max_key_length.update({col: len(keycode)}) - for (layer_index, layer) in enumerate(layers): - formatted += 2 * indent_level * " " - formatted += "[" - for (index, keycode) in enumerate(layer): - if index > 30 and index % 2 == 0 or index % 5 == 0 and index != 0: - formatted += (1 + 2 * indent_level) * " " - formatted += json.dumps(keycode) - if index == 33: - formatted += "\n" - elif index > 30 and index % 2 == 1 or index % 5 == 4: - formatted += ",\n" - else: - n_spaces = max_key_length[col_index(index)] - len(keycode) - formatted += n_spaces * " " - formatted += ", " - if index % 10 == 9: - formatted += "\n" - formatted += 2 * indent_level * " " - if layer_index < len(layers) - 1: - formatted += "],\n" - else: - formatted += "]\n" - formatted += indent_level * " " - formatted += "]" - - return formatted - -def format_keymap(keymap_json): - formatted = "{" - for (index, k) in enumerate(keymap_json): - if k == "layers": - formatted += format_layers(keymap_json[k]) - else: - formatted += f"{indent_level * ' '}{json.dumps(k)}: {json.dumps(keymap_json[k])}" - if index < len(keymap_json) - 1: - formatted += "," - formatted += "\n" - formatted += "}" - return formatted - -def main(): - args=parse_cli() - keymap_json = json.loads(args.input.read()) - print(format_keymap(keymap_json)) - -main() |