import hashlib import os import subprocess from pathlib import Path repository = Path(__file__).resolve().parent.parent version, relative, expected_hash = (repository / "manifests" / "cloudflared.tsv").read_text().strip().split("\t") binary = repository / relative actual_hash = hashlib.sha256(binary.read_bytes()).hexdigest() if actual_hash != expected_hash: raise RuntimeError("cloudflared checksum mismatch") if os.stat(binary).st_mode & 0o111 == 0: raise RuntimeError("cloudflared is not executable") actual_version = subprocess.check_output([binary, "--version"], text=True).split()[2] if actual_version != version: raise RuntimeError("cloudflared version mismatch") license_file = repository / "vendor" / "dsh-ui-translate" / "THIRD_PARTY_LICENSES" / "Apache-2.0.txt" if "Apache License" not in license_file.read_text(): raise RuntimeError("Apache-2.0 license missing") print("cloudflared artifact test passed")