diff options
| author | Ryan <fauxpark@gmail.com> | 2020-11-05 06:18:47 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-04 19:18:47 +0000 |
| commit | 7ef98e7f6164afd1d825a6ce8efa20560927fcc9 (patch) | |
| tree | 74734d3984caae26dfebdecdfd79e35d72b81500 /lib | |
| parent | d46fa2274cac7d1dad2e6c684d3fabf729efaa2e (diff) | |
| download | qmk_firmware-7ef98e7f6164afd1d825a6ce8efa20560927fcc9.tar.gz qmk_firmware-7ef98e7f6164afd1d825a6ce8efa20560927fcc9.zip | |
CLI: Add `qmk clean` (#10785)
Diffstat (limited to 'lib')
| -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 |
3 files changed, 23 insertions, 0 deletions
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 | ||
