summaryrefslogtreecommitdiff
path: root/scripts/post-receive.sample
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/post-receive.sample')
-rwxr-xr-xscripts/post-receive.sample32
1 files changed, 32 insertions, 0 deletions
diff --git a/scripts/post-receive.sample b/scripts/post-receive.sample
new file mode 100755
index 0000000..3ee898d
--- /dev/null
+++ b/scripts/post-receive.sample
@@ -0,0 +1,32 @@
+#!/bin/bash
+#
+# Sample git post-receive hook for /srv/git/prism-v2.git on the VPS.
+#
+# Install:
+# sudo cp /var/www/prism-v2/scripts/post-receive.sample /srv/git/prism-v2.git/hooks/post-receive
+# sudo chmod +x /srv/git/prism-v2.git/hooks/post-receive
+#
+# Required sudoers entry so the git user can restart services without a password.
+# Adjust GIT_USER if your git is owned by a different account.
+# GIT_USER ALL=(root) NOPASSWD: /var/www/prism-v2/scripts/deploy.sh
+
+set -euo pipefail
+
+BRANCH="master"
+WEB_DIR="/var/www/prism-v2"
+GIT_DIR="/srv/git/prism-v2.git"
+LOG="/var/log/git-deploy.log"
+
+exec >> "$LOG" 2>&1
+
+while read -r oldrev newrev refname; do
+ if [ "$refname" = "refs/heads/$BRANCH" ]; then
+ echo "$(date -Is): Checking out $BRANCH to $WEB_DIR"
+ sudo -u www-data git --work-tree="$WEB_DIR" --git-dir="$GIT_DIR" checkout -f "$BRANCH"
+
+ echo "$(date -Is): Running deploy.sh"
+ sudo "$WEB_DIR/scripts/deploy.sh"
+
+ echo "$(date -Is): Done."
+ fi
+done