aboutsummaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli/compile.py
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2021-04-14 19:00:22 -0700
committerGitHub <noreply@github.com>2021-04-14 19:00:22 -0700
commit588bcdc8ca212b195a428fc43766a59a9252c08d (patch)
tree4867ef610b2178d51002063bd4913e806f771543 /lib/python/qmk/cli/compile.py
parentb33e6793de6c5f5124ee88fb3eb62d8f54f74940 (diff)
downloadqmk_firmware-588bcdc8ca212b195a428fc43766a59a9252c08d.tar.gz
qmk_firmware-588bcdc8ca212b195a428fc43766a59a9252c08d.zip
Add support for tab completion (#12411)
* Add support for tab completion * make flake8 happy * Add documentation
Diffstat (limited to 'lib/python/qmk/cli/compile.py')
-rwxr-xr-xlib/python/qmk/cli/compile.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py
index 5793e9892..23ca4e00a 100755
--- a/lib/python/qmk/cli/compile.py
+++ b/lib/python/qmk/cli/compile.py
@@ -2,17 +2,19 @@
2 2
3You can compile a keymap already in the repo or using a QMK Configurator export. 3You can compile a keymap already in the repo or using a QMK Configurator export.
4""" 4"""
5from argcomplete.completers import FilesCompleter
5from milc import cli 6from milc import cli
6 7
7import qmk.path 8import qmk.path
8from qmk.decorators import automagic_keyboard, automagic_keymap 9from qmk.decorators import automagic_keyboard, automagic_keymap
9from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json 10from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json
10from qmk.keyboard import keyboard_folder 11from qmk.keyboard import keyboard_completer, keyboard_folder
12from qmk.keymap import keymap_completer
11 13
12 14
13@cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), help='The configurator export to compile') 15@cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='The configurator export to compile')
14@cli.argument('-kb', '--keyboard', type=keyboard_folder, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') 16@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.')
15@cli.argument('-km', '--keymap', help='The keymap to build a firmware for. Ignored when a configurator export is supplied.') 17@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.')
16@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the make command to be run.") 18@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the make command to be run.")
17@cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs to run.") 19@cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs to run.")
18@cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.") 20@cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.")