Replace git hook with a python script

This commit is contained in:
Tom Willemse 2023-12-15 12:31:38 -08:00
parent b02f37cfe4
commit fff0b171aa

View file

@ -1,9 +1,28 @@
#!/usr/bin/env bash
#!/usr/bin/env python
while read precommit postcommit refname
do
echo "precommit: ${precommit}; postcommit: ${postcommit}; refname: ${refname}"
if [[ "${precommit}" != "0000000000000000000000000000000000000000" ]]; then
git diff --name-status $precommit $postcommit
fi
done
from shlex import quote
from subprocess import run
import os
import re
import sys
directories = set()
for line in sys.stdin:
precommit, postcommit, refname = line.split(' ')
if not refname == "refs/heads/main":
print(f"Skipping ref {refname}")
continue
print(f"precommit: {precommit}; postcommit: {postcommit}; refname: {refname}")
if not re.match(r"^0+$", precommit):
process = run(f"git diff --name-only {quote(precommit)} {quote(postcommit)}", shell=True, capture_output=True)
for filename in process.stdout.strip().split(b'\n'):
directories.add(os.path.dirname(filename).decode())
os.putenv("LAMINAR_REASON", "Push to git repository")
process = run(f"laminarc queue freeloadio directories={quote(str.join(';', directories))}", shell=True, capture_output=True)
buildname, buildrun = process.stdout.strip().split(b':')
print(f"Queued build: https://laminar.ryuslash.org/jobs/{buildname}/{buildrun}")