#!/usr/bin/env python3 """Pack release/ contents into uploadable zip (index.html at zip root).""" from __future__ import annotations import sys import zipfile from pathlib import Path ROOT = Path(__file__).resolve().parents[1] TOOL = ROOT / "release" OUT = ROOT / "dist" / "youmin-nav-xhs-tool.zip" def main() -> int: out = Path(sys.argv[1]) if len(sys.argv) > 1 else OUT out.parent.mkdir(parents=True, exist_ok=True) if out.exists(): out.unlink() files = sorted(p for p in TOOL.rglob("*") if p.is_file()) if not files: print("release/ is empty — run: python scripts/assemble.py", file=sys.stderr) return 1 with zipfile.ZipFile(out, "w", compression=zipfile.ZIP_DEFLATED) as zf: for p in files: zf.write(p, p.relative_to(TOOL).as_posix()) print(f"packed {out} ({out.stat().st_size / 1024:.1f} KB) entries={len(files)}") return 0 if __name__ == "__main__": raise SystemExit(main())