CLI: Improve keymap folder resolution (#20981)
This commit is contained in:
parent
78afa1164d
commit
dc75c23f5c
5 changed files with 32 additions and 13 deletions
|
@ -36,8 +36,8 @@ def keyboard(keyboard_name):
|
|||
return Path('keyboards') / keyboard_name
|
||||
|
||||
|
||||
def keymap(keyboard_name):
|
||||
"""Locate the correct directory for storing a keymap.
|
||||
def keymaps(keyboard_name):
|
||||
"""Returns all of the `keymaps/` directories for a given keyboard.
|
||||
|
||||
Args:
|
||||
|
||||
|
@ -45,17 +45,36 @@ def keymap(keyboard_name):
|
|||
The name of the keyboard. Example: clueboard/66/rev3
|
||||
"""
|
||||
keyboard_folder = keyboard(keyboard_name)
|
||||
found_dirs = []
|
||||
|
||||
for _ in range(MAX_KEYBOARD_SUBFOLDERS):
|
||||
if (keyboard_folder / 'keymaps').exists():
|
||||
return (keyboard_folder / 'keymaps').resolve()
|
||||
found_dirs.append((keyboard_folder / 'keymaps').resolve())
|
||||
|
||||
keyboard_folder = keyboard_folder.parent
|
||||
|
||||
if len(found_dirs) > 0:
|
||||
return found_dirs
|
||||
|
||||
logging.error('Could not find the keymaps directory!')
|
||||
raise NoSuchKeyboardError('Could not find keymaps directory for: %s' % keyboard_name)
|
||||
|
||||
|
||||
def keymap(keyboard_name, keymap_name):
|
||||
"""Locate the directory of a given keymap.
|
||||
|
||||
Args:
|
||||
|
||||
keyboard_name
|
||||
The name of the keyboard. Example: clueboard/66/rev3
|
||||
keymap_name
|
||||
The name of the keymap. Example: default
|
||||
"""
|
||||
for keymap_dir in keymaps(keyboard_name):
|
||||
if (keymap_dir / keymap_name).exists():
|
||||
return (keymap_dir / keymap_name).resolve()
|
||||
|
||||
|
||||
def normpath(path):
|
||||
"""Returns a `pathlib.Path()` object for a given path.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue