gitweb: update index text
[girocco.git] / jobs / updateweb.sh
blob33c4fcabb543454bc150f859aa67c7180c6164de
1 #!/bin/sh
3 . @basedir@/shlib.sh
5 set -e
7 REPO_DIR="/home/repo/repo"
8 LOCK_FILE="/tmp/updateweb-$cfg_tmpsuffix.lock"
9 REMOTE="origin"
10 BRANCH="rorcz"
12 # Make sure we don't run twice.
13 if [ -s "$LOCK_FILE" ] && kill -0 "$(cat "$LOCK_FILE")" 2>/dev/null; then
14 echo "Already running updateweb.sh (stuck?) with pid $(cat "$LOCK_FILE")" >&2
15 exit 1
17 trap 'rm -f "$LOCK_FILE"' EXIT
18 trap 'exit 130' INT
19 trap 'exit 143' TERM
20 echo $$ >"$LOCK_FILE"
22 cd "$REPO_DIR"
23 git fetch origin
24 if [ -n "$(git rev-list $BRANCH..$REMOTE/$BRANCH)" ]; then
25 case "$(git describe --always --dirty=..dirty)" in *..dirty)
26 echo "updateweb.sh: refusing to update because worktree is dirty" >&2
27 rm -f "$LOCK_FILE"
28 exit 1
29 esac
30 git merge --ff-only "$REMOTE/$BRANCH" &&
31 git submodule update --init --recursive &&
32 make -s &&
33 make install &&
34 /usr/bin/sudo -n /usr/sbin/apache2ctl graceful 2>/dev/null || :
35 # would be good to run update-all-projects and clear-all-htmlcache now
36 # but they don't really complete quickly enough to be done here
39 rm -f "$LOCK_FILE"
40 trap - EXIT INT TERM