summaryrefslogtreecommitdiffstats
path: root/lib/python
Commit message (Collapse)AuthorAgeFilesLines
* Major rework, no regex/globbing, more walkingErovia2020-02-152-79/+67
| | | | | | Instead of using regexes and globbing to find the rules.mk and keymap.c files, walk the directory tree to find them. Also, do away with the concept of revision.
* Fix merging community and base keymapsErovia2020-02-151-1/+1
|
* Return only the unique keymapsErovia2020-02-151-6/+5
|
* Drop bs4 dependency, update docs, minor improvementsErovia2020-02-153-20/+16
|
* Fix regex for parsing rules.mk filesErovia2020-02-151-8/+3
| | | | I don't know why it couldn't put it together before... ¯\_(ツ)_/¯
* Add test for list_keymapsErovia2020-02-151-0/+5
|
* Another major refactoring, add documentationErovia2020-02-154-76/+162
| | | | | | Move all useful functions to the qmk module and use the cli subcommand as a wrapper around it. Add both inline comments and documentation.
* Fix output formatErovia2020-02-151-1/+1
|
* Try to figure out revision, drop -rv/--revision argumentErovia2020-02-151-32/+34
|
* Fix help message.Erovia2020-02-151-1/+1
|
* Get all buildable keymaps for each revisionErovia2020-02-151-27/+32
| | | | | | | The command now return all keymaps that's buildable for a keyboard/revision. If the base directory of a keyboard does not contain a 'rules.mk' file, nothing is returned. If the base directory contains a 'keymaps' directory, those keycaps will be returned for every revision.
* Major update to work better with revisionsErovia2020-02-151-24/+21
| | | | Find the community keymaps supported by each revision.
* CLI: add support for list_keymapsErovia2020-02-152-0/+85
| | | | List all the available keymaps for a given keyboard
* use replace() over rename() to have cross-platform overwriting (#8148)Mikkel Jeppesen2020-02-111-1/+1
|
* Update the flash cli command to use the user config (#8125)Erovia2020-02-081-2/+2
|
* CI: Add workflow for CLI testing (#7357)Joel Challis2020-02-081-1/+1
| | | Create GitHub Actions cli test workflow and remove travis runs of 'qmk pytest'
* Add QMK Compile Context Sensitivity (#6884)Cody Bender2020-02-071-3/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add context sensitive compile, without config check * Initial full working state. Plan to refactor * Refactor loop for simplicity, add comments * Update docs/cli.md with qmk compile examples * Simplify path for keyboard derivation * Update path to use path.join instead of concat * Refactor keyboard path, the skully way * Add in keymap folder support * Add /layouts compile support * Update docs/cli.md with empty compile in layouts * Add comments to compile.py * Update docs for clarity, and fix compile error typo * Fix config option compile * Fix layout compile and failure mode * Add rules.mk check * Fix variable names for global config * Add in_layout priority * Remove default fallback in favor of throw, update docs * Add keymap folder context * Fix formatting * Add os import * Convert to create_make_command * Fix Travis lint errors * Remove blank line with whitespace * Add blank lines for readability * Remove unnecessary config logic * Update Docs to add flash Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com> * Shift config precedence to MILC Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
* Improve the functionality of qmk.questions (#8020)skullydazed2020-02-031-8/+89
| | | | | | | | | | | | | | | | * wip * tested and working * remove unused import * Update lib/python/qmk/questions.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * fix flake8 errors Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* Fix cformat processing files within ignore folders (#8063)Joel Challis2020-02-021-0/+1
|
* Qmk doctor os check to support newer msys2/w10 installations (#8031)Mikkel Jeppesen2020-01-281-4/+4
| | | | | | * Fixed OS detection on newer MSYS installations * made OS sting lower case
* Beef up how `qmk doctor` works. (#7375)skullydazed2020-01-243-63/+344
| | | | | | | | | | | | | | | | | | | | | | * 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>
* Align cformat rules with current CI implementation (#7936)Joel Challis2020-01-211-3/+4
| | | | | | * Align cformat rules with current CI implementation * Optimise file walking
* Fix attribute heritance for long commands.Erovia2020-01-191-4/+7
| | | | | This is needed for inheritance to work with commands that have dashes in their names.
* Fix commandline arg merging, small improvementsErovia2020-01-191-3/+3
| | | | | | Commandline args should be merged with the submodule's config. Compare config values to None instead of False, so empty lines and False can be used as values.
* MILC: Fix/complete attribute heritanceErovia2020-01-191-2/+15
| | | | | If an undefined attribute of a submodule is accessed, fall back to same attribute of the submodule's parent.
* yapf and styleskullY2020-01-111-11/+10
|
* Make the udev rules easier to read and manageErovia2020-01-111-10/+19
|
* Fix Pro Micro's and its bootloader's nameErovia2020-01-111-3/+3
|
* CLI: Rework ModemManager check and add udev checkErovia2020-01-111-17/+38
|
* Also fix flashZach White2019-12-081-2/+3
|
* Fix compiling json filesZach White2019-12-082-9/+4
|
* Add pep8-naming to our python lintingskullY2019-12-012-2/+2
|
* Use os.chdir for `qmk docs` instead of a custom HTTP request handler (#7493)fauxpark2019-11-291-6/+4
|
* MILC: Add support for hidden subcommands (#7034)Erovia2019-11-211-6/+8
| | | | | | | | | | | * MILC: Add support for hidden subcommands Subcommands with 'hidden=True' will not show up in the help output, but will work as any other subcommands. * Hide those hidden submodules, for real now * Rebase on latest MILC
* Add flake8 to our test suite and fix all errors (#7379)skullydazed2019-11-2011-83/+80
| | | | | | * Add flake8 to our test suite and fix all errors * Add some documentation
* Improve a number of things about how MILC operates (#7344)skullydazed2019-11-181-85/+82
| | | | | | | | | | | | | * Pull in updates for MILC * Remove the shadow argparser * Make it easier to reason about arguments and how they're translated into the config tree * Populate self.config during init to support setting user.qmk_home for the global CLI * Remove the short argument -c so that we can unambiguously determine the config file location without doing full argument processing * Remove the --save-config option as it's a little confusing anyway * Use Pathlib for path manipulation * Fix commands with no arguments
* format code according to conventions [skip ci]QMK Bot2019-11-164-4/+8
|
* Add CLI command for flashing a keyboardjorgemanzo2019-11-155-5/+157
| | | | | | | | 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.
* format code according to conventions [skip ci]QMK Bot2019-11-133-19/+10
|
* Add cli convert subcommand, from raw KLE to JSON (#6898)Cody Bender2019-11-126-0/+275
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Make generating keymap.c from JSON more reliableskullY2019-11-121-1/+3
|
* Small CLI cleanupsskullY2019-11-126-5/+4
| | | | | | | * yapf changes * Fix the cformat test * Make the normpath test work when run from / * `qmk config`: Mark `--read-only` as arg_only
* When checking program returncodes treat both 0 and 1 as installedskullY2019-11-121-5/+4
|
* Add support for newer versions of clang-format, if installedskullY2019-11-121-1/+10
|
* Fix the CLI docs (#6979)St. John Johnson2019-10-291-1/+1
| | | | | - Sort the commands alphabetically - Add missing `json_keymap` - Correct underscore to dash
* MILC: Use dashes instead of underscores for subcommandsErovia2019-10-232-4/+5
| | | | | | | The subcommand functions' name follows the Python convention of using snake case, but looks odd on the command line. Fix it by converting underscores to dashes, eg.: list_keyboards -> list-keyboards.
* Fix detection of ModemManager (#7076)Harry Wada2019-10-201-2/+2
|
* [CLI] `qmk docs` graceful shutdown on Ctrl+C (#6989)fauxpark2019-10-111-1/+6
|
* [Docs] CLI command to serve docs locally (#6956)fauxpark2019-10-082-0/+23
| | | | | | | | | | | | | | | | * CLI command to serve docs locally * Document it * Default port * Use `with` and subclass `SimpleHTTPRequestHandler` to set working dir * Apply suggestions from code review Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com> * Update docs/cli.md
* [CLI] Add `qmk list_keyboards` (#6927)Dan McClain2019-10-074-0/+36
| | | | | | | | | `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