93 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/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'"
 | 
						|
 | 
						|
SITE="/var/www/hugo/site"
 | 
						|
 | 
						|
echo "*** Creating Git Repo ***"
 | 
						|
if [[ -d $SITE ]]; then
 | 
						|
	rm -rfv $SITE
 | 
						|
fi
 | 
						|
sudo -u www-data git clone --recurse-submodules $BRANCH $REPO $SITE
 | 
						|
status="$?"
 | 
						|
 | 
						|
echo "*** Validating Git Repo ***"
 | 
						|
if [[ $status != 0 || ! -d $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 $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 $?
 |