#!/usr/bin/env bash REPO="$1" echo "REPO='$REPO'" BRANCH="$2" if [[ -n $BRANCH ]]; then BRANCH="--branch $BRANCH" fi echo "BRANCH='$BRANCH'" PROD="$3" typeset -u PROD echo "PROD='$PROD'" DEV="$4" typeset -u DEV echo "DEV='$DEV'" echo "*** Creating Git Repo ***" sudo -u www-data git clone --recurse-submodules $BRANCH $REPO /var/www/hugo/site status="$?" echo "*** Validating Git Repo ***" if [[ $status != 0 || ! -d /var/www/hugo/site/.git ]]; then echo "ERROR: Hugo project may not have cloned correctly. status='$status'" echo "Aborting." exit 1 fi echo "* Site exists!" echo "*** Copying Static Files to NGINX ***" rm -rfv /var/www/html/* sudo -u www-data /var/www/hugo/cronjob.sh echo "*** Starting Cron ***" service cron start service cron status if [[ "$PROD" == "Y"* || "$PROD" == "T"* ]]; then echo "*** Starting Production Server Loop ***" while true; do http_code="`curl -sS http://localhost:80 -o /dev/null -w "%{http_code}"`" if [[ $http_code != 200 ]]; then echo "* Prod server not detected, starting..." service nginx status service nginx start service nginx status fi sleep 15 done & cd /var/log/nginx tail -f access.log error.log & fi if [[ "$DEV" == "Y"* || "$DEV" == "T"* ]]; then echo "*** Starting Development Server Loop ***" while true; do http_code="`curl -sS http://localhost:1380 -o /dev/null -w "%{http_code}"`" if [[ $http_code != 200 ]]; then echo "* Dev server not detected, starting..." cd /var/www/hugo/site killall hugo 2>/dev/null sudo -u www-data hugo server -D --noBuildLock --bind 0.0.0.0 -p 1380 & fi sleep 30 done & fi echo "*** Following Mail Files ***" cd /var/mail touch mail www-data chown -v mail:mail mail chown -v www-data:mail www-data chmod -v 660 mail www-data tail -f mail www-data & cd echo "*** Finished $0 @ `date` ***" wait -n exit $?