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 | ||
