#!/usr/bin/env bash set -e nginx -t nginx -g 'daemon off;' & nginx_pid=$! trap 'kill "$nginx_pid"' EXIT trap 'kill "$nginx_pid"' SIGTERM function checkIsUpToDate() { git fetch git rev-list HEAD...origin/master --count | grep -q "^0$" && { return 0 } return 1 } function update() { git reset --hard git pull make mv /var/www/html /var/www/html-delme mv public/ /var/www/html rm -rf /var/www/html-delme & git reset --hard } cd /repo update ( while true; do sleep 15 checkIsUpToDate && continue update done ) & ( while true; do sleep 1h update done ) & wait "$nginx_pid"