diff options
author | skullydazed <skullydazed@users.noreply.github.com> | 2019-07-15 12:14:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-15 12:14:27 -0700 |
commit | a25dd58bc56b0c4010673723ac44eaff914979bb (patch) | |
tree | e4c08289df1b72db4ef8447ab7fdc13f604cffac /lib/python/qmk/path.py | |
parent | 7ba82cb5b751d69dda6cc77ec8877c89defad3e4 (diff) | |
download | qmk_firmware-a25dd58bc56b0c4010673723ac44eaff914979bb.tar.gz qmk_firmware-a25dd58bc56b0c4010673723ac44eaff914979bb.zip |
QMK CLI and JSON keymap support (#6176)
* 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
Diffstat (limited to 'lib/python/qmk/path.py')
-rw-r--r-- | lib/python/qmk/path.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py new file mode 100644 index 000000000..f2a8346a5 --- /dev/null +++ b/lib/python/qmk/path.py | |||
@@ -0,0 +1,32 @@ | |||
1 | """Functions that help us work with files and folders. | ||
2 | """ | ||
3 | import os | ||
4 | |||
5 | |||
6 | def keymap(keyboard): | ||
7 | """Locate the correct directory for storing a keymap. | ||
8 | |||
9 | Args: | ||
10 | keyboard | ||
11 | The name of the keyboard. Example: clueboard/66/rev3 | ||
12 | """ | ||
13 | for directory in ['.', '..', '../..', '../../..', '../../../..', '../../../../..']: | ||
14 | basepath = os.path.normpath(os.path.join('keyboards', keyboard, directory, 'keymaps')) | ||
15 | |||
16 | if os.path.exists(basepath): | ||
17 | return basepath | ||
18 | |||
19 | logging.error('Could not find keymaps directory!') | ||
20 | raise NoSuchKeyboardError('Could not find keymaps directory for: %s' % keyboard) | ||
21 | |||
22 | |||
23 | def normpath(path): | ||
24 | """Returns the fully resolved absolute path to a file. | ||
25 | |||
26 | This function will return the absolute path to a file as seen from the | ||
27 | directory the script was called from. | ||
28 | """ | ||
29 | if path and path[0] == '/': | ||
30 | return os.path.normpath(path) | ||
31 | |||
32 | return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path)) | ||