"""Assemble the website payload in work/site-stage, laid out as on the server. py scripts/stage_site.py The server serves /var/www/lihont. Pages that live in folders (/lihonb, /members, /pay) are index.html files there. Only files that belong to the site redesign are staged: the pages and src/web/assets/site/{md3.css,md3.js,icons.svg}. Existing downloads, logos and the old md3-theme.css (used by the member portal) are not touched. """ from __future__ import annotations import shutil import sys from pathlib import Path ROOT = Path(__file__).resolve().parent.parent STAGE = ROOT / "work" / "site-stage" # (source in the repository, path on the server relative to the web root) PAYLOAD = [ ("src/web/index.html", "index.html"), ("src/web/lihonb.html", "lihonb.html"), ("src/web/lihonb.html", "lihonb/index.html"), ("src/web/members_index.html", "members/index.html"), ("src/web/pay_index.html", "pay/index.html"), ("src/web/assets/site/md3.css", "assets/site/md3.css"), ("src/web/assets/site/md3.js", "assets/site/md3.js"), ("src/web/assets/site/icons.svg", "assets/site/icons.svg"), ] def main() -> int: missing = [source for source, _ in PAYLOAD if not (ROOT / source).is_file()] if missing: print("Missing sources:\n " + "\n ".join(missing)) return 1 for source, target in PAYLOAD: destination = STAGE / target destination.parent.mkdir(parents=True, exist_ok=True) shutil.copyfile(ROOT / source, destination) print("Staged %d files in %s" % (len(PAYLOAD), STAGE)) return 0 if __name__ == "__main__": sys.exit(main())