Unbundle covers: fetch psppt-covers.zip from repo on demand with user prompt
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Package the offline cover zips into a single distributable bundle.
|
||||
|
||||
Outputs ``psppt-covers.zip`` containing ``libretro-covers.zip`` and
|
||||
``openvgdb-covers.zip``. Attach it to the Gitea ``covers`` release; the app
|
||||
downloads it on first run when the user opts in.
|
||||
|
||||
Usage: python3 scripts/make-covers-bundle.py [out-path]
|
||||
"""
|
||||
import sys
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
COVERS = ROOT / "data" / "covers"
|
||||
INNER = ("libretro-covers.zip", "openvgdb-covers.zip")
|
||||
|
||||
|
||||
def main(argv):
|
||||
out = Path(argv[1]) if len(argv) > 1 else ROOT / "psppt-covers.zip"
|
||||
missing = [n for n in INNER if not (COVERS / n).exists()]
|
||||
if missing:
|
||||
print(f"missing: {', '.join(missing)} in {COVERS}", file=sys.stderr)
|
||||
return 2
|
||||
# Inner zips are already compressed; store them to avoid recompressing.
|
||||
with zipfile.ZipFile(out, "w", zipfile.ZIP_STORED) as z:
|
||||
for n in INNER:
|
||||
print(f"adding {n} …")
|
||||
z.write(COVERS / n, arcname=n)
|
||||
size = out.stat().st_size / (1 << 20)
|
||||
print(f"wrote {out} ({size:.0f} MB)")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main(sys.argv))
|
||||
Reference in New Issue
Block a user