Add validation tool
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Verify that the pinned WEB PANEL PROXY layout still matches our adapter."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print("usage: validate_upstream_layout.py PATH_TO_EXTRACTED_RELEASE", file=sys.stderr)
|
||||||
|
return 2
|
||||||
|
|
||||||
|
root = Path(sys.argv[1])
|
||||||
|
core = (root / "install-webproxy-core.sh").read_text(encoding="utf-8")
|
||||||
|
panel = (root / "install-panel.sh").read_text(encoding="utf-8")
|
||||||
|
|
||||||
|
checks = {
|
||||||
|
"core port 80 check": core.count("check_install_port 80 caddy"),
|
||||||
|
"core port 443 check": core.count("check_install_port 443 caddy"),
|
||||||
|
"core canonical Caddy patch point": core.count(
|
||||||
|
' "$CANONICAL_CADDY"\n\nif [[ "$REUSE_CADDY" == "1" ]]; then'
|
||||||
|
),
|
||||||
|
"panel route": panel.count('" reverse_proxy 127.0.0.1:8090\\n"'),
|
||||||
|
"panel relay matcher": panel.count(
|
||||||
|
r"r'(?m)^\s*reverse_proxy 127\.0\.0\.1:8080\s*\{'"
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
failed = False
|
||||||
|
for name, count in checks.items():
|
||||||
|
status = "OK" if count == 1 else f"FAIL (found {count})"
|
||||||
|
print(f"{name}: {status}")
|
||||||
|
failed |= count != 1
|
||||||
|
return 1 if failed else 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
||||||
Reference in New Issue
Block a user