summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-05-22 07:03:59 +0100
committerGitHub <noreply@github.com>2023-05-22 07:03:59 +0100
commitfb056c543765b1c8ed7dae031a36ed2d04b1c718 (patch)
tree44f1d9fbbaa7bc3fe35fd6cf7e3d682ea2977c57 /lib
parent595f7db3840ab8155264e948d8ad5be5f8a1d0ed (diff)
Update json2c to use dump_lines (#21013)
Diffstat (limited to 'lib')
-rwxr-xr-xlib/python/qmk/cli/json2c.py19
-rw-r--r--lib/python/qmk/tests/test_cli_commands.py4
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():