Skip to content

Commit

Permalink
Rename qmk json-keymap to qmk json2c (qmk#8372)
Browse files Browse the repository at this point in the history
  • Loading branch information
skullydazed committed Mar 10, 2020
1 parent 1aa40dd commit 2a05d43
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 48 deletions.
2 changes: 1 addition & 1 deletion build_json.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ endif

# Generate the keymap.c
$(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)
4 changes: 2 additions & 2 deletions docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,14 +231,14 @@ Check your environment and report problems only:

qmk doctor -n

## `qmk json-keymap`
## `qmk json2c`

Creates a keymap.c from a QMK Configurator export.

**Usage**:

```
qmk json-keymap [-o OUTPUT] filename
qmk json2c [-o OUTPUT] filename
```

## `qmk kle2json`
Expand Down
4 changes: 2 additions & 2 deletions docs/ja/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,14 +215,14 @@ qmk doctor [-y] [-n]

qmk doctor -n

## `qmk json-keymap`
## `qmk json2c`

QMK Configurator からエクスポートしたものから keymap.c を生成します。

**使用法**:

```
qmk json-keymap [-o OUTPUT] filename
qmk json2c [-o OUTPUT] filename
```

## `qmk kle2json`
Expand Down
1 change: 1 addition & 0 deletions lib/python/qmk/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from . import flash
from . import hello
from . import json
from . import json2c
from . import list
from . import kle2json
from . import new
Expand Down
46 changes: 3 additions & 43 deletions lib/python/qmk/cli/json/keymap.py
Original file line number Diff line number Diff line change
@@ -1,56 +1,16 @@
"""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 json_keymap(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.
"""Renamed to `qmk json2c`.
"""
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)
cli.log.error('This command has been renamed to `qmk json2c`.')
exit(1)
56 changes: 56 additions & 0 deletions lib/python/qmk/cli/json2c.py
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit 2a05d43

Please sign in to comment.