diff options
author | Joel Challis <git@zvecr.com> | 2021-02-07 21:02:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-07 21:02:51 +0000 |
commit | ccc9c43161282bd6f37813cc85c13da1eb51b88d (patch) | |
tree | 92fc97bb2489ba92e2ab95597e4e88c7fcd8bbb9 /lib/python/qmk/cli/json2c.py | |
parent | fc29c7a589837c2d1e4173d59d2849f89d3cb72b (diff) | |
download | qmk_firmware-ccc9c43161282bd6f37813cc85c13da1eb51b88d.tar.gz qmk_firmware-ccc9c43161282bd6f37813cc85c13da1eb51b88d.zip |
Allow flash/compile to accept relative json paths (#11767)
* Allow flash/compile to accept relative paths
* Review suggestions
* Review comments
* Put back exists check otherwise stdin fails
* fix lint
Diffstat (limited to 'lib/python/qmk/cli/json2c.py')
-rwxr-xr-x | lib/python/qmk/cli/json2c.py | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/lib/python/qmk/cli/json2c.py b/lib/python/qmk/cli/json2c.py index 97d8fb0c3..e7babc0e4 100755 --- a/lib/python/qmk/cli/json2c.py +++ b/lib/python/qmk/cli/json2c.py | |||
@@ -1,7 +1,6 @@ | |||
1 | """Generate a keymap.c from a configurator export. | 1 | """Generate a keymap.c from a configurator export. |
2 | """ | 2 | """ |
3 | import json | 3 | import json |
4 | import sys | ||
5 | 4 | ||
6 | from milc import cli | 5 | from milc import cli |
7 | 6 | ||
@@ -11,7 +10,7 @@ import qmk.path | |||
11 | 10 | ||
12 | @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') |
13 | @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") | 12 | @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") |
14 | @cli.argument('filename', type=qmk.path.normpath, arg_only=True, help='Configurator JSON file') | 13 | @cli.argument('filename', type=qmk.path.FileType('r'), arg_only=True, help='Configurator JSON file') |
15 | @cli.subcommand('Creates a keymap.c from a QMK Configurator export.') | 14 | @cli.subcommand('Creates a keymap.c from a QMK Configurator export.') |
16 | def json2c(cli): | 15 | def json2c(cli): |
17 | """Generate a keymap.c from a configurator export. | 16 | """Generate a keymap.c from a configurator export. |
@@ -20,19 +19,8 @@ def json2c(cli): | |||
20 | """ | 19 | """ |
21 | 20 | ||
22 | try: | 21 | try: |
23 | # Parse the configurator from stdin | 22 | # Parse the configurator from json file (or stdin) |
24 | if cli.args.filename and cli.args.filename.name == '-': | 23 | user_keymap = json.load(cli.args.filename) |
25 | user_keymap = json.load(sys.stdin) | ||
26 | |||
27 | else: | ||
28 | # Error checking | ||
29 | if not cli.args.filename.exists(): | ||
30 | cli.log.error('JSON file does not exist!') | ||
31 | return False | ||
32 | |||
33 | # Parse the configurator json file | ||
34 | else: | ||
35 | user_keymap = json.loads(cli.args.filename.read_text()) | ||
36 | 24 | ||
37 | except json.decoder.JSONDecodeError as ex: | 25 | except json.decoder.JSONDecodeError as ex: |
38 | cli.log.error('The JSON input does not appear to be valid.') | 26 | cli.log.error('The JSON input does not appear to be valid.') |