diff --git a/check-linuxcnc-switchkins-remap-source-map.sh b/check-linuxcnc-switchkins-remap-source-map.sh index 624fddb..1eb1f4f 100755 --- a/check-linuxcnc-switchkins-remap-source-map.sh +++ b/check-linuxcnc-switchkins-remap-source-map.sh @@ -83,11 +83,12 @@ for phrase in required_phrases: ) case_fields = {case["field"] for case in json_cases} -bad_fields = [field for field in case_fields if "tool" in field.lower()] +source_only_field_re = re.compile(r"asset|metadata|tool|tooldata|tool_table|TOOL_TABLE", re.I) +bad_fields = [field for field in case_fields if source_only_field_re.search(field)] if bad_fields: - raise SystemExit(f"generated switchkins config cases expose TOOL_TABLE fields: {bad_fields}") -if re.search(r'\btoolTable\b|\btooltable\b|\btool_table\b|\bTOOL_TABLE\b', Path("web/src/wasm-core.js").read_text(encoding="utf-8")): - raise SystemExit("web/src/wasm-core.js exposes TOOL_TABLE through switchkins API") -if re.search(r'\btoolTable\b|\btooltable\b|\btool_table\b|\bTOOL_TABLE\b', Path("web/src/index.ts").read_text(encoding="utf-8")): - raise SystemExit("web/src/index.ts exposes TOOL_TABLE through switchkins API") + raise SystemExit(f"generated switchkins config cases expose source-only fields: {bad_fields}") +api_surface_re = re.compile(r'\b(?:asset|metadata|toolData|tooldata|toolTable|tooltable|tool_table|TOOL_TABLE)\b') +for api_path in ["web/src/wasm-core.js", "web/src/index.ts", "core/include/cnc_sim_api.h"]: + if api_surface_re.search(Path(api_path).read_text(encoding="utf-8")): + raise SystemExit(f"{api_path} exposes source-only switchkins inputs through API surface") PY