1
0
Fork 0

Rename qmk json-keymap to qmk json2c (#8372)

This commit is contained in:
skullydazed 2020-03-10 13:51:19 -07:00 committed by GitHub
parent 1aa40dde46
commit 2a05d433c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 65 additions and 48 deletions

View file

@ -23,4 +23,4 @@ endif
# Generate the keymap.c # Generate the keymap.c
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
bin/qmk json-keymap --quiet --output $(KEYMAP_C) $(KEYMAP_JSON) bin/qmk json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)

View file

@ -231,14 +231,14 @@ Check your environment and report problems only:
qmk doctor -n qmk doctor -n
## `qmk json-keymap` ## `qmk json2c`
Creates a keymap.c from a QMK Configurator export. Creates a keymap.c from a QMK Configurator export.
**Usage**: **Usage**:
``` ```
qmk json-keymap [-o OUTPUT] filename qmk json2c [-o OUTPUT] filename
``` ```
## `qmk kle2json` ## `qmk kle2json`

View file

@ -215,14 +215,14 @@ qmk doctor [-y] [-n]
qmk doctor -n qmk doctor -n
## `qmk json-keymap` ## `qmk json2c`
QMK Configurator からエクスポートしたものから keymap.c を生成します。 QMK Configurator からエクスポートしたものから keymap.c を生成します。
**使用法**: **使用法**:
``` ```
qmk json-keymap [-o OUTPUT] filename qmk json2c [-o OUTPUT] filename
``` ```
## `qmk kle2json` ## `qmk kle2json`

View file

@ -10,6 +10,7 @@ from . import doctor
from . import flash from . import flash
from . import hello from . import hello
from . import json from . import json
from . import json2c
from . import list from . import list
from . import kle2json from . import kle2json
from . import new from . import new

View file

@ -1,56 +1,16 @@
"""Generate a keymap.c from a configurator export. """Generate a keymap.c from a configurator export.
""" """
import json
from pathlib import Path from pathlib import Path
from milc import cli from milc import cli
import qmk.keymap
import qmk.path
@cli.argument('-o', '--output', arg_only=True, type=Path, help='File to write to') @cli.argument('-o', '--output', arg_only=True, type=Path, help='File to write to')
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
@cli.argument('filename', arg_only=True, help='Configurator JSON file') @cli.argument('filename', arg_only=True, help='Configurator JSON file')
@cli.subcommand('Creates a keymap.c from a QMK Configurator export.') @cli.subcommand('Creates a keymap.c from a QMK Configurator export.')
def json_keymap(cli): def json_keymap(cli):
"""Generate a keymap.c from a configurator export. """Renamed to `qmk json2c`.
This command uses the `qmk.keymap` module to generate a keymap.c from a configurator export. The generated keymap is written to stdout, or to a file if -o is provided.
""" """
cli.args.filename = qmk.path.normpath(cli.args.filename) cli.log.error('This command has been renamed to `qmk json2c`.')
exit(1)
# Error checking
if not cli.args.filename.exists():
cli.log.error('JSON file does not exist!')
cli.print_usage()
exit(1)
if str(cli.args.filename) == '-':
# TODO(skullydazed/anyone): Read file contents from STDIN
cli.log.error('Reading from STDIN is not (yet) supported.')
cli.print_usage()
exit(1)
# Environment processing
if cli.args.output == ('-'):
cli.args.output = None
# Parse the configurator json
with cli.args.filename.open('r') as fd:
user_keymap = json.load(fd)
# Generate the keymap
keymap_c = qmk.keymap.generate(user_keymap['keyboard'], user_keymap['layout'], user_keymap['layers'])
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.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)

56
lib/python/qmk/cli/json2c.py Executable file
View file

@ -0,0 +1,56 @@
"""Generate a keymap.c from a configurator export.
"""
import json
from pathlib import Path
from milc import cli
import qmk.keymap
import qmk.path
@cli.argument('-o', '--output', arg_only=True, type=Path, help='File to write to')
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
@cli.argument('filename', arg_only=True, help='Configurator JSON file')
@cli.subcommand('Creates a keymap.c from a QMK Configurator export.')
def json2c(cli):
"""Generate a keymap.c from a configurator export.
This command uses the `qmk.keymap` module to generate a keymap.c from a configurator export. The generated keymap is written to stdout, or to a file if -o is provided.
"""
cli.args.filename = qmk.path.normpath(cli.args.filename)
# Error checking
if not cli.args.filename.exists():
cli.log.error('JSON file does not exist!')
cli.print_usage()
exit(1)
if str(cli.args.filename) == '-':
# TODO(skullydazed/anyone): Read file contents from STDIN
cli.log.error('Reading from STDIN is not (yet) supported.')
cli.print_usage()
exit(1)
# Environment processing
if cli.args.output == ('-'):
cli.args.output = None
# Parse the configurator json
with cli.args.filename.open('r') as fd:
user_keymap = json.load(fd)
# Generate the keymap
keymap_c = qmk.keymap.generate(user_keymap['keyboard'], user_keymap['layout'], user_keymap['layers'])
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.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)