summaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli
AgeCommit message (Collapse)Author
2020-02-26Qmk doctor os check to support newer msys2/w10 installations (#8031)Mikkel Jeppesen
* Fixed OS detection on newer MSYS installations * made OS sting lower case
2020-02-26Beef up how `qmk doctor` works. (#7375)skullydazed
* Beef up how `qmk doctor` works. * improve the `git submodule status` parsing. h/t @erovia * Fix whitespace and imports * yapf * Add documentation for the new doctor functionality * Replace type_unchanged() with str() * remove unused modules * Update lib/python/qmk/cli/doctor.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-02-26Align cformat rules with current CI implementation (#7936)Joel Challis
* Align cformat rules with current CI implementation * Optimise file walking
2020-02-26yapf and styleskullY
2020-02-26Make the udev rules easier to read and manageErovia
2020-02-26Fix Pro Micro's and its bootloader's nameErovia
2020-02-26CLI: Rework ModemManager check and add udev checkErovia
2020-01-09Add pep8-naming to our python lintingskullY
2020-01-09Add flake8 to our test suite and fix all errors (#7379)skullydazed
* Add flake8 to our test suite and fix all errors * Add some documentation
2020-01-09format code according to conventions [skip ci]QMK Bot
2020-01-09Add CLI command for flashing a keyboardjorgemanzo
A new CLI subcommand was added, flash, which behaves very similar to the already present compile CLI comamnd, but with the added ability to target a bootloader. The command is used like so: qmk flash [-h] [-b] [-kb KEYBOARD] [-km KEYMAP] [-bl BOOTLOADER] [filename]. A -kb <keyboard> and -km <keymap> is expected, or a configurator export JSON filename. A bootloader can be specified using -bl <target>, and if left unspecified, the target is assumed to be :flash. -bl can be used to list the available bootloaders. If -km <keymap> is provided, but no -kb <keyboard>, then a message is printed suggesting the user to run qmk list_keyboards.
2020-01-09format code according to conventions [skip ci]QMK Bot
2020-01-09Add cli convert subcommand, from raw KLE to JSON (#6898)Cody Bender
* Add initial pass at KLE convert * Add cli log on convert * Move kle2xy, add absolute filepath arg support * Add overwrite flag, and context sensitive conversion * Update docs/cli.md * Fix converter.py typo * Add convert unit test * Rename to kle2qmk * Rename subcommand * Rename subcommand to kle2json * Change tests to cover rename * Rename in __init__.py * Update CLI docs with new subcommand name * Fix from suggestions in PR #6898 * Help with cases of case sensitivity * Update cli.md * Use angle brackets to indicate required option * Make the output text more accurate
2020-01-09Make generating keymap.c from JSON more reliableskullY
2020-01-09Small CLI cleanupsskullY
* yapf changes * Fix the cformat test * Make the normpath test work when run from / * `qmk config`: Mark `--read-only` as arg_only
2020-01-09When checking program returncodes treat both 0 and 1 as installedskullY
2020-01-09Add support for newer versions of clang-format, if installedskullY
2019-11-04Fix detection of ModemManager (#7076)Harry Wada
2019-11-04[CLI] Add `qmk list_keyboards` (#6927)Dan McClain
`list_keyboards` replicates the `make list-keyboards` by globbing for all paths that include `rules.mk` and then removing the paths that include `keymaps`. This basis of this cli command could be reused in the future as a util, but is not done so here since this would be the only place that would use it currently Resolves #6911
2019-11-04Use `keymap` instead of `username` variable for `qmk new_keymap` (#6885)St. John Johnson
Username is not defined and this causes `qmk new_keymap` to error. This appears to have originated from a partial update in https://github.com/qmk/qmk_firmware/pull/6708/files#diff-d5208bcbc79aa428556a743b6ff41086. This change completes the migration from `username` to `keymap`
2019-11-04Fix qmk doctor 'bytes-like object is required' on linuxAyman Bagabas
This fixes the following issue related to encoding on linux systems. Add `universal_newlines=True` to subprocess. <class 'TypeError'> ☒ a bytes-like object is required, not 'str' Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/milc.py", line 564, in __call__ return self.__call__() File "/usr/local/lib/python3.7/site-packages/milc.py", line 569, in __call__ return self._entrypoint(self) File "$HOME/qmk_firmware/lib/python/qmk/cli/doctor.py", line 56, in doctor for line in mm_check.stdout.split('\n'): TypeError: a bytes-like object is required, not 'str'
2019-11-04Configuration system for CLI (#6708)skullydazed
* Rework how bin/qmk handles subcommands * qmk config wip * Code to show all configs * Fully working `qmk config` command * Mark some CLI arguments so they don't pollute the config file * Fleshed out config support, nicer subcommand support * sync with installable cli * pyformat * Add a test for subcommand_modules * Documentation for the `qmk config` command * split config_token on space so qmk config is more predictable * Rework how subcommands are imported * Document `arg_only` * Document deleting from CLI * Document how multiple operations work * Add cli config to the doc index * Add tests for the cli commands * Make running the tests more reliable * Be more selective about building all default keymaps * Update new-keymap to fit the new subcommand style * Add documentation about writing CLI scripts * Document new-keyboard * Update docs/cli_configuration.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Address yan's comments. * Apply suggestions from code review suggestions from @noahfrederick Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Apply suggestions from code review Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Remove pip3 from the test runner
2019-09-26Created new_keymap.py, python version of new_keymap.sh (#6066)Kenny Hoang
* Created python version of new_keymap.sh: new_keymap.py * Updated usage message * Updated new_keymap.py to use python3.5+ syntax & be more similar to new_keyboard.sh * Updated complete message * Updated usage in argparser and removed incorrect usage_message * Reverted the fstrings back to strings that use .format() & updated docstring convention * Added helper to recursively cd .. until at qmk_firmware root directory * Revert "Added helper to recursively cd .. until at qmk_firmware root directory" This reverts commit 61a0ff3b25f91901287bec8d58eb51a1f126e2ad. * Updated new_keymap.py to use printf-style format strings * First draft lib/python/qmk/cli/new/keymap.py with milc * Removed shebang & syspath appending lines * Added optional args & resolved some cr comemnts * Added a docstring and updated strings
2019-09-26Add a command to format python codeskullY
2019-09-26Make the modem manager check more pythonicskullY
2019-09-26Setup a python test frameworkskullY
2019-09-26readability enhancementsskullY
2019-09-26Add support for passing files at the command lineskullY
2019-09-26CLI command to format C codeskullY
2019-08-28Refactor `qmk compile-json` to `qmk compile` (#6592)skullydazed
2019-07-19Fix compiling json files. (#6340)skullydazed
2019-07-19QMK CLI and JSON keymap support (#6176)skullydazed
* Script to generate keymap.c from JSON file. * Support for keymap.json * Add a warning about the keymap.c getting overwritten. * Fix keymap generating * Install the python deps * Flesh out more of the python environment * Remove defunct json2keymap * Style everything with yapf * Polish up python support * Hide json keymap.c into the .build dir * Polish up qmk-compile-json * Make milc work with positional arguments * Fix a couple small things * Fix some errors and make the CLI more understandable * Make the qmk wrapper more robust * Add basic QMK Doctor * Clean up docstrings and flesh them out as needed * remove unused compile_firmware() function