diff options
author | skullydazed <skullydazed@users.noreply.github.com> | 2019-07-15 12:14:27 -0700 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2019-07-19 10:05:36 +0900 |
commit | 7e080e7ecd6dff6f06579ce8b1623bc22326e166 (patch) | |
tree | b5b45a7f6ebe4c60e9ae1835b2c8873178ccd592 /lib/python/qmk/path.py | |
parent | 1879c6e7342c78995b38dfbd62cd4504cc40b39f (diff) |
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 0000000000..f2a8346a51 --- /dev/null +++ b/lib/python/qmk/path.py @@ -0,0 +1,32 @@ +"""Functions that help us work with files and folders. +""" +import os + + +def keymap(keyboard): + """Locate the correct directory for storing a keymap. + + Args: + keyboard + The name of the keyboard. Example: clueboard/66/rev3 + """ + for directory in ['.', '..', '../..', '../../..', '../../../..', '../../../../..']: + basepath = os.path.normpath(os.path.join('keyboards', keyboard, directory, 'keymaps')) + + if os.path.exists(basepath): + return basepath + + logging.error('Could not find keymaps directory!') + raise NoSuchKeyboardError('Could not find keymaps directory for: %s' % keyboard) + + +def normpath(path): + """Returns the fully resolved absolute path to a file. + + This function will return the absolute path to a file as seen from the + directory the script was called from. + """ + if path and path[0] == '/': + return os.path.normpath(path) + + return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path)) |