forked from mfulz_github/qmk_firmware
		
	Rename qmk json-keymap to qmk json2c (#8372)
This commit is contained in:
		
							parent
							
								
									1aa40dde46
								
							
						
					
					
						commit
						2a05d433c9
					
				| @ -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) | ||||||
|  | |||||||
| @ -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` | ||||||
|  | |||||||
| @ -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` | ||||||
|  | |||||||
| @ -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 | ||||||
|  | |||||||
| @ -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`.') | ||||||
| 
 |  | ||||||
|     # Error checking |  | ||||||
|     if not cli.args.filename.exists(): |  | ||||||
|         cli.log.error('JSON file does not exist!') |  | ||||||
|         cli.print_usage() |  | ||||||
|     exit(1) |     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
									
								
							
							
						
						
									
										56
									
								
								lib/python/qmk/cli/json2c.py
									
									
									
									
									
										Executable 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) | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 skullydazed
						skullydazed