diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index d162551b542..44fed0843ce 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -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