diff --git a/build_json.mk b/build_json.mk index 2e23ed148..8820a8f4a 100644 --- a/build_json.mk +++ b/build_json.mk @@ -23,5 +23,5 @@ endif # Generate the keymap.c ifneq ("$(KEYMAP_JSON)","") - _ = $(shell bin/qmk-json-keymap -f $(KEYMAP_JSON) -o $(KEYMAP_C)) + _ = $(shell test -e $(KEYMAP_C) || bin/qmk-json-keymap $(KEYMAP_JSON) -o $(KEYMAP_C)) endif diff --git a/lib/python/qmk/cli/json/keymap.py b/lib/python/qmk/cli/json/keymap.py index 35fc8f9c0..e2d0b5809 100755 --- a/lib/python/qmk/cli/json/keymap.py +++ b/lib/python/qmk/cli/json/keymap.py @@ -28,8 +28,8 @@ def main(cli): exit(1) # Environment processing - if cli.args.output == ('-'): - cli.args.output = None + if cli.config.general.output == ('-'): + cli.config.general.output = None # Parse the configurator json with open(qmk.path.normpath(cli.args.filename), 'r') as fd: @@ -38,17 +38,17 @@ def main(cli): # Generate the keymap keymap_c = qmk.keymap.generate(user_keymap['keyboard'], user_keymap['layout'], user_keymap['layers']) - if cli.args.output: - output_dir = os.path.dirname(cli.args.output) + if cli.config.general.output: + output_dir = os.path.dirname(cli.config.general.output) if not os.path.exists(output_dir): os.makedirs(output_dir) - output_file = qmk.path.normpath(cli.args.output) + output_file = qmk.path.normpath(cli.config.general.output) with open(output_file, 'w') as keymap_fd: keymap_fd.write(keymap_c) - cli.log.info('Wrote keymap to %s.', cli.args.output) + cli.log.info('Wrote keymap to %s.', cli.config.general.output) else: print(keymap_c) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 6eccab788..396b53a6f 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -63,7 +63,7 @@ def generate(keyboard, layout, layers): layer_txt.append('\t[%s] = %s(%s)' % (layer_num, layout, layer_keys)) keymap = '\n'.join(layer_txt) - keymap_c = template(keyboard, keymap) + keymap_c = template(keyboard) return keymap_c.replace('__KEYMAP_GOES_HERE__', keymap)