diff options
-rw-r--r-- | docs/cli_commands.md | 10 | ||||
-rw-r--r-- | lib/python/qmk/cli/__init__.py | 1 | ||||
-rw-r--r-- | lib/python/qmk/cli/clean.py | 16 | ||||
-rw-r--r-- | lib/python/qmk/tests/test_cli_commands.py | 6 |
4 files changed, 33 insertions, 0 deletions
diff --git a/docs/cli_commands.md b/docs/cli_commands.md index fe6f06632..c970b1efa 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md | |||
@@ -212,6 +212,16 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K | |||
212 | qmk new-keymap [-kb KEYBOARD] [-km KEYMAP] | 212 | qmk new-keymap [-kb KEYBOARD] [-km KEYMAP] |
213 | ``` | 213 | ``` |
214 | 214 | ||
215 | ## `qmk clean` | ||
216 | |||
217 | This command cleans up the `.build` folder. If `--all` is passed, any .hex or .bin files present in the `qmk_firmware` directory will also be deleted. | ||
218 | |||
219 | **Usage**: | ||
220 | |||
221 | ``` | ||
222 | qmk clean [-a] | ||
223 | ``` | ||
224 | |||
215 | --- | 225 | --- |
216 | 226 | ||
217 | # Developer Commands | 227 | # Developer Commands |
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 47e1b4435..3868f94bb 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py | |||
@@ -8,6 +8,7 @@ from milc import cli | |||
8 | 8 | ||
9 | from . import c2json | 9 | from . import c2json |
10 | from . import cformat | 10 | from . import cformat |
11 | from . import clean | ||
11 | from . import compile | 12 | from . import compile |
12 | from . import config | 13 | from . import config |
13 | from . import docs | 14 | from . import docs |
diff --git a/lib/python/qmk/cli/clean.py b/lib/python/qmk/cli/clean.py new file mode 100644 index 000000000..ec6501b76 --- /dev/null +++ b/lib/python/qmk/cli/clean.py | |||
@@ -0,0 +1,16 @@ | |||
1 | """Clean the QMK firmware folder of build artifacts. | ||
2 | """ | ||
3 | from qmk.commands import run | ||
4 | from milc import cli | ||
5 | |||
6 | import shutil | ||
7 | |||
8 | |||
9 | @cli.argument('-a', '--all', arg_only=True, action='store_true', help='Remove *.hex and *.bin files in the QMK root as well.') | ||
10 | @cli.subcommand('Clean the QMK firmware folder of build artifacts.') | ||
11 | def clean(cli): | ||
12 | """Runs `make clean` (or `make distclean` if --all is passed) | ||
13 | """ | ||
14 | make_cmd = 'gmake' if shutil.which('gmake') else 'make' | ||
15 | |||
16 | run([make_cmd, 'distclean' if cli.args.all else 'clean']) | ||
diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index 7c261db6c..df5f047da 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py | |||
@@ -184,3 +184,9 @@ def test_c2json_nocpp(): | |||
184 | result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c") | 184 | result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c") |
185 | check_returncode(result) | 185 | check_returncode(result) |
186 | assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' | 186 | assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' |
187 | |||
188 | |||
189 | def test_clean(): | ||
190 | result = check_subcommand('clean', '-a') | ||
191 | check_returncode(result) | ||
192 | assert result.stdout.count('done') == 2 | ||