From 3c9b2277f5723c5300bb672bcbb298b0790a7cc1 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 24 Jan 2026 21:54:41 +0100 Subject: Draft hook --- blog_v2/post-receive | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 blog_v2/post-receive diff --git a/blog_v2/post-receive b/blog_v2/post-receive new file mode 100755 index 00000000..4858baaf --- /dev/null +++ b/blog_v2/post-receive @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +import os +import pathlib +import subprocess +import sys +import tempfile + + +target_ref = "refs/heads/master" +pushed_commit = None +uv = pathlib.Path.home() / ".local" / "bin" / "uv" +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) + os.chdir(repo / "blog_v2") + blog = repo / "blog" + migrated = tempdir / "migrated" + built = tempdir / "built" + subprocess.run([uv, "run", "blog", "migrate", blog, migrated], check=True) + # TODO: links are not generated properly :( + subprocess.run([uv, "run", "blog", "build", migrated, built], check=True) + subprocess.run(["rsync", "-r", "--delete-after", f"{built}/", f"{dest}/"], check=True) -- cgit v1.2.3