#!/usr/bin/env python3 import os import pathlib import subprocess import sys import tempfile target_ref = "refs/heads/master" pushed_commit = None dest = pathlib.Path.home() / "public_html" refs = sys.stdin.readlines() for ref in refs: _from, to, ref = ref.split() if ref == target_ref: pushed_commit = to if not pushed_commit: print("Not pushing to {target_ref}, move on") sys.exit(0) print(f"Building {pushed_commit}", flush=True) with tempfile.TemporaryDirectory() as tempdir: tempdir = pathlib.Path(tempdir) repo = tempdir / "repo" subprocess.run(["git", "worktree", "add", repo, pushed_commit], check=True) blog = repo / "blog" os.chdir(blog) os.environ["PATH"] = "/home/alex/.local/bin:" + os.environ["PATH"] subprocess.run(["./build.sh", dest], check=True)