Skip to content

Commit

Permalink
Update json2c to use dump_lines (qmk#21013)
Browse files Browse the repository at this point in the history
  • Loading branch information
zvecr authored and autoferrit committed Dec 6, 2023
1 parent e174335 commit 71f83cb
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 18 deletions.
19 changes: 3 additions & 16 deletions lib/python/qmk/cli/json2c.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

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')
Expand All @@ -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)
4 changes: 2 additions & 2 deletions lib/python/qmk/tests/test_cli_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -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():
Expand All @@ -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():
Expand Down

0 comments on commit 71f83cb

Please sign in to comment.