diff options
| author | Joel Challis <[email protected]> | 2025-08-03 04:01:13 +0100 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-03 04:01:13 +0100 | 
| commit | ae07dee941adb231981ab5fe62dfc39acea069e7 (patch) | |
| tree | 800a0f14b62eab5bfdd42f4fd03da7f4d2caf605 /lib/python/qmk/cli | |
| parent | d575bf7ddcb66849a449aa5f714eb926644862ec (diff) | |
| download | qmk_firmware-ae07dee941adb231981ab5fe62dfc39acea069e7.tar.gz qmk_firmware-ae07dee941adb231981ab5fe62dfc39acea069e7.zip | |
Improve 'new-keymap' error handling when default keymap is missing (#25536)0.29.12
Diffstat (limited to 'lib/python/qmk/cli')
| -rwxr-xr-x | lib/python/qmk/cli/new/keymap.py | 18 | 
1 files changed, 12 insertions, 6 deletions
| diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index 20a0c0198c..4d19a726a4 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -9,6 +9,7 @@ from milc import cli  from milc.questions import question, choice  from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE +from qmk.errors import NoSuchKeyboardError  from qmk.path import is_keyboard, keymaps, keymap  from qmk.git import git_get_username  from qmk.decorators import automagic_keyboard, automagic_keymap @@ -110,13 +111,18 @@ def new_keymap(cli):          cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} does not exist! Please choose a valid name.')          return False -    # generate keymap paths -    keymaps_dirs = keymaps(kb_name) +    # validate before any keymap ops +    try: +        keymaps_dirs = keymaps(kb_name) +        keymap_path_new = keymaps_dirs[0] / user_name +    except NoSuchKeyboardError: +        cli.log.error(f'Keymap folder for {{fg_cyan}}{kb_name}{{fg_reset}} does not exist!') +        return False +      keymap_path_default = keymap(kb_name, 'default') -    keymap_path_new = keymaps_dirs[0] / user_name -    if not keymap_path_default.exists(): -        cli.log.error(f'Default keymap {{fg_cyan}}{keymap_path_default}{{fg_reset}} does not exist!') +    if not keymap_path_default: +        cli.log.error(f'Default keymap for {{fg_cyan}}{kb_name}{{fg_reset}} does not exist!')          return False      if not validate_keymap_name(user_name): @@ -134,7 +140,7 @@ def new_keymap(cli):          _set_converter(keymap_path_new / 'keymap.json', converter)      # end message to user -    cli.log.info(f'{{fg_green}}Created a new keymap called {{fg_cyan}}{user_name}{{fg_green}} in: {{fg_cyan}}{keymap_path_new}.{{fg_reset}}') +    cli.log.info(f'{{fg_green}}Created a new keymap called {{fg_cyan}}{user_name}{{fg_green}} in: {{fg_cyan}}{keymap_path_new}{{fg_reset}}.')      cli.log.info(f"Compile a firmware with your new keymap by typing: {{fg_yellow}}qmk compile -kb {kb_name} -km {user_name}{{fg_reset}}.")      # Add to userspace compile if we have userspace available | 
