summaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2025-08-03 03:01:47 +0000
committerQMK Bot <hello@qmk.fm>2025-08-03 03:01:47 +0000
commit96ee4c21a31f65d172a302c6a53d2136389cde76 (patch)
tree671ad297dad1bcd3ccbf38b23a5550968b988aac /lib/python/qmk/cli
parentefce9bc9b558f2681eb5a82b66e6ebf4dbf82916 (diff)
parentae07dee941adb231981ab5fe62dfc39acea069e7 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'lib/python/qmk/cli')
-rwxr-xr-xlib/python/qmk/cli/new/keymap.py18
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
9from milc.questions import question, choice 9from milc.questions import question, choice
10 10
11from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE 11from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE
12from qmk.errors import NoSuchKeyboardError
12from qmk.path import is_keyboard, keymaps, keymap 13from qmk.path import is_keyboard, keymaps, keymap
13from qmk.git import git_get_username 14from qmk.git import git_get_username
14from qmk.decorators import automagic_keyboard, automagic_keymap 15from 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