#!/usr/bin/env python 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}")