diff options
| -rwxr-xr-x | lib/python/qmk/cli/json2c.py | 19 | ||||
| -rw-r--r-- | lib/python/qmk/tests/test_cli_commands.py | 4 | 
2 files changed, 5 insertions, 18 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  import qmk.keymap  import qmk.path -from qmk.commands import parse_configurator_json +from qmk.commands import dump_lines, parse_configurator_json  @cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') @@ -21,21 +21,8 @@ def json2c(cli):      # Parse the configurator from json file (or stdin)      user_keymap = parse_configurator_json(cli.args.filename) -    # Environment processing -    if cli.args.output and cli.args.output.name == '-': -        cli.args.output = None -      # Generate the keymap      keymap_c = qmk.keymap.generate_c(user_keymap) -    if cli.args.output: -        cli.args.output.parent.mkdir(parents=True, exist_ok=True) -        if cli.args.output.exists(): -            cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak')) -        cli.args.output.write_text(keymap_c) - -        if not cli.args.quiet: -            cli.log.info('Wrote keymap to %s.', cli.args.output) - -    else: -        print(keymap_c) +    # Show the results +    dump_lines(cli.args.output, keymap_c.split('\n'), cli.args.quiet) diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index 13359808a0..1725e3ea79 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -144,7 +144,7 @@ def test_list_keymaps_no_keyboard_found():  def test_json2c():      result = check_subcommand('json2c', 'keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json')      check_returncode(result) -    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' +    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n\n'  def test_json2c_macros(): @@ -158,7 +158,7 @@ def test_json2c_macros():  def test_json2c_stdin():      result = check_subcommand_stdin('keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json', 'json2c', '-')      check_returncode(result) -    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' +    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n\n'  def test_json2c_wrong_json(): | 
