diff options
| author | alex <alex@pdp7.net> | 2026-02-01 21:47:23 +0100 |
|---|---|---|
| committer | alexpdp7 <alex@corcoles.net> | 2026-02-01 22:03:42 +0100 |
| commit | c48ca0ca40ed9ac009d7f84ce213ef5c69536ca7 (patch) | |
| tree | 791845e06bb167794ec916fd6e2b04b6bba1234b /blog/post-receive | |
| parent | f94e0a1bc1aea34cb4eadd2305ddf724722cd9b9 (diff) | |
Migrate blog
Turns into a static site generator. All Gemini files with links have
been rewritten to be relative.
Closes: #731
Closes: #372
Closes: #28
Diffstat (limited to 'blog/post-receive')
| -rwxr-xr-x | blog/post-receive | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/blog/post-receive b/blog/post-receive new file mode 100755 index 00000000..d5f26676 --- /dev/null +++ b/blog/post-receive @@ -0,0 +1,35 @@ +#!/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) + blog = repo / "blog" + os.chdir(blog) + built = tempdir / "built" + subprocess.run([uv, "run", "blog", "build", blog, built], check=True) + subprocess.run(["rsync", "-r", "--delete-after", f"{built}/", f"{dest}/"], check=True) |
