58 lines
719 B
Bash
Executable File
58 lines
719 B
Bash
Executable File
#!/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
|
|
}
|
|
function init() {
|
|
test -z "$GIT_URL" && {
|
|
echo "GIT_URL is not set"
|
|
exit 1
|
|
}
|
|
git clone "$GIT_URL" .
|
|
}
|
|
|
|
cd /repo
|
|
|
|
init
|
|
update
|
|
(
|
|
while true; do
|
|
sleep 15
|
|
checkIsUpToDate && continue
|
|
update
|
|
done
|
|
|
|
) &
|
|
|
|
(
|
|
while true; do
|
|
sleep 1h
|
|
update
|
|
|
|
done
|
|
) &
|
|
|
|
wait "$nginx_pid"
|