31 lines
931 B
Python
31 lines
931 B
Python
#!/usr/bin/env python3
|
|
"""Pack release/ 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" / "nomadro-redmini.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/ 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)")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|