diff options
| author | QMK Bot <hello@qmk.fm> | 2025-08-03 03:01:47 +0000 |
|---|---|---|
| committer | QMK Bot <hello@qmk.fm> | 2025-08-03 03:01:47 +0000 |
| commit | 96ee4c21a31f65d172a302c6a53d2136389cde76 (patch) | |
| tree | 671ad297dad1bcd3ccbf38b23a5550968b988aac /lib/python/qmk/cli/new/keymap.py | |
| parent | efce9bc9b558f2681eb5a82b66e6ebf4dbf82916 (diff) | |
| parent | ae07dee941adb231981ab5fe62dfc39acea069e7 (diff) | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'lib/python/qmk/cli/new/keymap.py')
| -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 | |||
| 9 | from milc.questions import question, choice | 9 | from milc.questions import question, choice |
| 10 | 10 | ||
| 11 | from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE | 11 | from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE |
| 12 | from qmk.errors import NoSuchKeyboardError | ||
| 12 | from qmk.path import is_keyboard, keymaps, keymap | 13 | from qmk.path import is_keyboard, keymaps, keymap |
| 13 | from qmk.git import git_get_username | 14 | from qmk.git import git_get_username |
| 14 | from qmk.decorators import automagic_keyboard, automagic_keymap | 15 | from qmk.decorators import automagic_keyboard, automagic_keymap |
| @@ -110,13 +111,18 @@ def new_keymap(cli): | |||
| 110 | cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} does not exist! Please choose a valid name.') | 111 | cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} does not exist! Please choose a valid name.') |
| 111 | return False | 112 | return False |
| 112 | 113 | ||
| 113 | # generate keymap paths | 114 | # validate before any keymap ops |
| 114 | keymaps_dirs = keymaps(kb_name) | 115 | try: |
| 116 | keymaps_dirs = keymaps(kb_name) | ||
| 117 | keymap_path_new = keymaps_dirs[0] / user_name | ||
| 118 | except NoSuchKeyboardError: | ||
| 119 | cli.log.error(f'Keymap folder for {{fg_cyan}}{kb_name}{{fg_reset}} does not exist!') | ||
| 120 | return False | ||
| 121 | |||
| 115 | keymap_path_default = keymap(kb_name, 'default') | 122 | keymap_path_default = keymap(kb_name, 'default') |
| 116 | keymap_path_new = keymaps_dirs[0] / user_name | ||
| 117 | 123 | ||
| 118 | if not keymap_path_default.exists(): | 124 | if not keymap_path_default: |
| 119 | cli.log.error(f'Default keymap {{fg_cyan}}{keymap_path_default}{{fg_reset}} does not exist!') | 125 | cli.log.error(f'Default keymap for {{fg_cyan}}{kb_name}{{fg_reset}} does not exist!') |
| 120 | return False | 126 | return False |
| 121 | 127 | ||
| 122 | if not validate_keymap_name(user_name): | 128 | if not validate_keymap_name(user_name): |
| @@ -134,7 +140,7 @@ def new_keymap(cli): | |||
| 134 | _set_converter(keymap_path_new / 'keymap.json', converter) | 140 | _set_converter(keymap_path_new / 'keymap.json', converter) |
| 135 | 141 | ||
| 136 | # end message to user | 142 | # end message to user |
| 137 | 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}}') | 143 | 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}}.') |
| 138 | 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}}.") | 144 | 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}}.") |
| 139 | 145 | ||
| 140 | # Add to userspace compile if we have userspace available | 146 | # Add to userspace compile if we have userspace available |
