#!/usr/bin/env bash
# post-receive hook for automated deployment

GIT_REPO=$HOME/vbrandl.git
WORKING_DIRECTORY=$HOME/vbrandl-working
PUBLIC_WWW="/var/www/vbrandl.net"
BACKUP_WWW=$HOME/blog_backup
MY_DOMAIN=www.vbrandl.net

set -e

rm -rf $WORKING_DIRECTORY
rsync -aqz ${PUBLIC_WWW}/ $BACKUP_WWW
trap "echo 'A problem occurred.  Reverting to backup.'; rsync -aqz --del $BACKUP_WWW/ $PUBLIC_WWW; rm -rf $WORKING_DIRECTORY" EXIT

git clone --recursive $GIT_REPO $WORKING_DIRECTORY
rm -rf $PUBLIC_WWW/*
$HOME/.local/bin/hugo -s $WORKING_DIRECTORY -d ${PUBLIC_WWW} -b "https://${MY_DOMAIN}"
# ahead of time compression
find $PUBLIC_WWW -type f \( -name '*.html' -o -name '*.js' -o -name '*.css' -o -name '*.xml' -o -name '*.svg' \) -exec gzip -v -k -f --best {} \; -exec touch -r {} "{}.gz" \;
rm -rf $WORKING_DIRECTORY
trap - EXIT
