summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use pathlib everywhere we can (#7872)skullydazed2020-02-1711-169/+213
| | | | | | | | | | | | | | | | | | | | | | * Use pathlib everywhere we can * Update lib/python/qmk/path.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * Update lib/python/qmk/path.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * Improvements based on @erovia's feedback * rework qmk compile and qmk flash to use pathlib * style * Remove the subcommand_name argument from find_keyboard_keymap() Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* Fix os detection in OSX python 3.8 (#8187)Mikkel Jeppesen2020-02-171-1/+1
| | | | | | * Fix os detection in osx python 3.8 * oops
* fix list_keymaps for python 3.5skullY2020-02-151-2/+2
|
* Pathlib-ify qmk.keymap.list_keymaps()Erovia2020-02-151-9/+10
|
* Code cleanup, use pathlib, use pytest keyboardErovia2020-02-154-32/+16
| | | | | | | | Clean up checks and logics that are unnecessary due to MILC updates. Use pathlib instead of os.path for readability. Use the 'pytest' keyboard for the tests. Add community layout for 'handwired/onekey/pytest' so we can test community layouts.
* Fix commandline parsing and flake8 findings, rebaseErovia2020-02-155-5/+18
| | | | | Fixed commandline and config parsing. Thx @xplusplus. Rebased on master and fixed merge conflicts.
* 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
|