aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2024-08-25 20:08:46 +0100
committerGravatar Joe Banks <[email protected]>2024-08-25 23:14:45 +0100
commit3717b85aa128c3e61c19e001ea8684ce8c8d9607 (patch)
tree9239f4f2a99d4fa2d366e8b6b9017d12feeb38b0
parentAdd dependency on NGINX to git-mirrors role for handlers (diff)
Add script for updating mirrors in a cronjob
-rw-r--r--ansible/roles/git-mirrors/templates/update-mirrors.sh.j219
1 files changed, 19 insertions, 0 deletions
diff --git a/ansible/roles/git-mirrors/templates/update-mirrors.sh.j2 b/ansible/roles/git-mirrors/templates/update-mirrors.sh.j2
new file mode 100644
index 0000000..52831b6
--- /dev/null
+++ b/ansible/roles/git-mirrors/templates/update-mirrors.sh.j2
@@ -0,0 +1,19 @@
+#!/usr/bin/env sh
+
+set -u
+
+# Base location of all mirrors
+MIRRORS_BASE_DIR="/srv/git-mirrors/mirrored"
+
+# Locate repositories knowing that there will be a HEAD file inside them
+FOUND_REPOS=$(find "$MIRRORS_BASE_DIR" -name "HEAD" | xargs dirname)
+
+for repo in $FOUND_REPOS; do
+ cd "$repo";
+ echo "Updating $repo mirror..."
+ if ! git fetch -q; then
+ echo "Error: Failed to update repository $repo"
+ exit 1
+ fi
+ echo "Updated repository."
+done