diff options
Diffstat (limited to 'lib/python/qmk/cli/json2c.py')
| -rwxr-xr-x | lib/python/qmk/cli/json2c.py | 19 |
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 | ||
| 6 | import qmk.keymap | 6 | import qmk.keymap |
| 7 | import qmk.path | 7 | import qmk.path |
| 8 | from qmk.commands import parse_configurator_json | 8 | from 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) | ||
