Improve duplicate and error reporting when parsing emsdk_manifest.json (#1778)
diff --git a/emsdk.py b/emsdk.py
index b714f1f..e00005c 100644
--- a/emsdk.py
+++ b/emsdk.py
@@ -2206,9 +2206,10 @@
def add_tool(tool):
tool.is_sdk = False
+ existing = find_tool(str(tool))
+ if existing:
+ raise Exception(f'Duplicate tool {tool}! Existing:\n{vars(existing)}, New:\n{vars(tool)}')
tools.append(tool)
- if find_tool(str(tool)):
- raise Exception('Duplicate tool ' + str(tool) + '! Existing:\n{' + ', '.join("%s: %s" % item for item in vars(find_tool(str(tool))).items()) + '}, New:\n{' + ', '.join("%s: %s" % item for item in vars(tool).items()) + '}')
tools_map[str(tool)] = tool
@@ -2219,9 +2220,10 @@
def add_sdk(sdk):
sdk.is_sdk = True
+ existing = find_sdk(str(sdk))
+ if existing:
+ raise Exception(f'Duplicate sdk {sdk}! Existing:\n{vars(existing)}, New:\n{vars(sdk)}')
sdks.append(sdk)
- if find_sdk(str(sdk)):
- raise Exception('Duplicate sdk ' + str(sdk) + '! Existing:\n{' + ', '.join("%s: %s" % item for item in vars(find_sdk(str(sdk))).items()) + '}, New:\n{' + ', '.join("%s: %s" % item for item in vars(sdk).items()) + '}')
sdks_map[str(sdk)] = sdk
@@ -2436,10 +2438,9 @@
def load_sdk_manifest():
try:
manifest = json.loads(read_file(sdk_path('emsdk_manifest.json')))
- except Exception as e:
- print('Error parsing emsdk_manifest.json!')
- print(str(e))
- return
+ except Exception:
+ errlog('Error parsing emsdk_manifest.json!')
+ raise
emscripten_tags = load_legacy_emscripten_tags()
llvm_precompiled_tags_32bit = []