diff options
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.') |
