From 839c8c87267aa43e592aebb7532ffec661836370 Mon Sep 17 00:00:00 2001 From: Trey Bastian Date: Tue, 28 Oct 2025 11:31:58 +0000 Subject: added usage instructions and relocated git-hooks --- git-hooks/post-receive | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 git-hooks/post-receive (limited to 'git-hooks') diff --git a/git-hooks/post-receive b/git-hooks/post-receive new file mode 100755 index 0000000..6445e0b --- /dev/null +++ b/git-hooks/post-receive @@ -0,0 +1,31 @@ +#!/bin/bash + +# this post-receive hook runs globally on my local git machine +# if the knot.conf file exists it reads it to get the remote repo and mirror pushes +# if the file doesn't exist, it doesn't mirror the repo AKA it's private and it stays on my network +# +# USAGE: +# 1) set core.hooksPath to point to where this file is located +# ex `sudo git --config --system core.hooksPath /home/git/scripts/git-hooks` +# 2) create a knot.conf file in the repo of your choice with the path to your remote +# 3) push as normal and everything should mirror + +REPO_PATH=$(pwd) +KNOT_FILE="$REPO_PATH/knot.conf" +LOGFILE="/home/git/knot-sync.log" #log our syncing isssues + +if [ ! -f "$KNOT_FILE" ]; then + echo "[$(date)] $REPO_PATH: knot.conf not found, skipping" >> "$LOGFILE" + exit 0 +fi +REPO_URL=$(cat "$KNOT_FILE" | tr -d '\n' | xargs) +if [ -z "$REPO_URL" ]; then + echo "[$(date)] $REPO_PATH: misconfigured knot.conf, skipping" >> "$LOGFILE" + exit 0 +fi + +echo "[$(date)] BEGIN PUSH $REPO_PATH" >> "$LOGFILE" +git push --mirror "$REPO_URL" >> "$LOGFILE" 2>&1 +echo "[$(date)] END PUSH $REPO_PATH" >> "$LOGFILE" + +# vim: filetype=sh -- cgit v1.2.3