You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.4 KiB

#!/bin/sh
set -eu
stage=/tmp/tera-static-progress
mkdir -p "$stage"
wget -q -T 30 -O "$stage/web" http://192.168.0.100:9001/web
echo '__WEBHASH__ '"$stage/web" | sha256sum -c -
backup=/userdata/tera-backups/static-progress-$(date +%Y%m%d-%H%M%S)
mkdir -p "$backup"
cp -p /usr/bin/tera-clone-demo-web "$backup/web"
echo "BACKUP=$backup"
rollback() {
trap - EXIT
/etc/init.d/S61teraweb stop || true
cp "$backup/web" /usr/bin/tera-clone-demo-web.restore
chmod 755 /usr/bin/tera-clone-demo-web.restore
mv /usr/bin/tera-clone-demo-web.restore /usr/bin/tera-clone-demo-web
/etc/init.d/S61teraweb start || true
echo REPLACEMENT_DEFAULT_PORT_ROLLED_BACK
}
trap rollback EXIT
cp "$stage/web" /usr/bin/tera-clone-demo-web.next
chmod 755 /usr/bin/tera-clone-demo-web.next
/etc/init.d/S61teraweb stop
mv /usr/bin/tera-clone-demo-web.next /usr/bin/tera-clone-demo-web
/etc/init.d/S61teraweb start
ready=0
for n in $(seq 1 30); do
if wget -q -T 2 -O "$stage/status" http://127.0.0.1/login/backend-status && grep -q '"ready":true' "$stage/status"; then ready=1; break; fi
sleep 1
done
[ "$ready" = 1 ]
wget -q -T 3 -O "$stage/style" http://127.0.0.1/static/css/style.css
! grep -q 'login-progress-slide' "$stage/style"
wget -q -T 3 -O "$stage/login" http://127.0.0.1/login
grep -q '20260909-static-progress-1' "$stage/login"
cat "$stage/status"
sha256sum /usr/bin/tera-clone-demo-web
sync
trap - EXIT
echo REPLACEMENT_DEFAULT_PORT_DEPLOY_OK