Files @ d5e4646ca521
Branch filter:

Location: website/cron/scripts/website-update.sh - annotation

brett
website-update: Stop updating the database.

Move this to a separate service.
#!/bin/sh

set -e
set -u

LOCKDIR="/tmp/website-update.$(id -u)"
SITEDIR=~/website
PRODUCTION_BRANCH=master

git_rev_name() {
    git rev-parse --abbrev-ref --symbolic-full-name "$@"
}

if ! mkdir "$LOCKDIR"; then
    test -d "$LOCKDIR"
    exit $?
fi
trap 'rmdir "$LOCKDIR"' 0 INT TERM QUIT

# If the checkout is not on the production branch,
# assume maintenance is happening and stop.
cd "$SITEDIR"
if [ "$(git_rev_name HEAD)" != "$PRODUCTION_BRANCH" ]; then
    exit 0
fi

# Abort if the production branch isn't tracking a remote branch.
if ! git_upstream="$(git_rev_name '@{upstream}' 2>/dev/null)"; then
    exit 3
fi

IFS=/ read git_remote git_refspec <<EOF
$git_upstream
EOF
git fetch --quiet --no-tags "$git_remote" "$git_refspec"
if [ "$(git rev-parse "$PRODUCTION_BRANCH")" = "$(git rev-parse "$git_upstream")" ]; then
    exit 0
fi

exitcode=0
git merge --quiet --ff-only "$git_remote" "$git_refspec"
python2 -m compileall -q -x - www || exitcode=$?
chgrp -R www-data www || exitcode=$?
chmod -R g+rX-w,o+X-w www || exitcode=$?
chmod -R o+r www/conservancy/static || exitcode=$?
exit "$exitcode"