navmini/xhs/scripts/pack.py
eric 518410edd0 feat: 游民导航 H5、微信小程序与小红书小工具
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-27 12:15:00 -05:00

35 lines
972 B
Python

#!/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())