Fail when a duplicate module name is detected (#26238)

This commit is contained in:
Joel Challis
2026-05-29 20:32:28 +01:00
committed by GitHub
parent 7b51d7e665
commit a9efff322c
+14 -1
View File
@@ -1137,4 +1137,17 @@ def get_modules(keyboard, keymap_filename):
if keymap_json:
modules.extend(keymap_json.get('modules', []))
return list(dict.fromkeys(modules)) # remove dupes
# remove duplicates while maintaining the current order
ret = list(dict.fromkeys(modules))
# We currently do not support duplicate module names
# e.g.: ['foo/hello_world', 'bar/hello_world'] will fail
seen = set()
for module in ret:
module_slug = Path(module).name.lower()
if module_slug in seen:
duplicates = list(filter(lambda m: module_slug == Path(m).name.lower(), ret))
raise Exception(f'Duplicate module name detected: "{module_slug}" - {duplicates}')
seen.add(module_slug)
return ret