summaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli/json2c.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python/qmk/cli/json2c.py')
-rwxr-xr-xlib/python/qmk/cli/json2c.py19
1 files changed, 3 insertions, 16 deletions
diff --git a/lib/python/qmk/cli/json2c.py b/lib/python/qmk/cli/json2c.py
index 2873a9bfd3..a2db314947 100755
--- a/lib/python/qmk/cli/json2c.py
+++ b/lib/python/qmk/cli/json2c.py
@@ -5,7 +5,7 @@ from milc import cli
5 5
6import qmk.keymap 6import qmk.keymap
7import qmk.path 7import qmk.path
8from qmk.commands import parse_configurator_json 8from qmk.commands import dump_lines, parse_configurator_json
9 9
10 10
11@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') 11@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to')
@@ -21,21 +21,8 @@ def json2c(cli):
21 # Parse the configurator from json file (or stdin) 21 # Parse the configurator from json file (or stdin)
22 user_keymap = parse_configurator_json(cli.args.filename) 22 user_keymap = parse_configurator_json(cli.args.filename)
23 23
24 # Environment processing
25 if cli.args.output and cli.args.output.name == '-':
26 cli.args.output = None
27
28 # Generate the keymap 24 # Generate the keymap
29 keymap_c = qmk.keymap.generate_c(user_keymap) 25 keymap_c = qmk.keymap.generate_c(user_keymap)
30 26
31 if cli.args.output: 27 # Show the results
32 cli.args.output.parent.mkdir(parents=True, exist_ok=True) 28 dump_lines(cli.args.output, keymap_c.split('\n'), cli.args.quiet)
33 if cli.args.output.exists():
34 cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
35 cli.args.output.write_text(keymap_c)
36
37 if not cli.args.quiet:
38 cli.log.info('Wrote keymap to %s.', cli.args.output)
39
40 else:
41 print(keymap_c)