#!/usr/bin/env bash
set -euo pipefail
TS=$(date +%Y%m%d%H%M%S)

# Backup current files before public routing changes.
cp -a /srv/www/webpi/index.html "/srv/www/webpi/index.html.bak.music-public.${TS}"
cp -a /etc/caddy/Caddyfile "/etc/caddy/Caddyfile.bak.music-public.${TS}"
cp -a /home/admin/.cloudflared/config.yml "/home/admin/.cloudflared/config.yml.bak.music-public.${TS}"
cp -a /srv/apps/sotlab-users/sotlab_users_app.py "/srv/apps/sotlab-users/sotlab_users_app.py.bak.music-public.${TS}"

install -m 0644 -o www-data -g www-data /tmp/sotlab-portal-music-public.html /srv/www/webpi/index.html

python3 - <<'PY'
from pathlib import Path
caddy = Path('/etc/caddy/Caddyfile')
s = caddy.read_text()
s = s.replace('@profile_protected host sotlab.co.uk www.sotlab.co.uk webpi.sotlab.co.uk status.sotlab.co.uk',
              '@profile_protected host sotlab.co.uk www.sotlab.co.uk webpi.sotlab.co.uk status.sotlab.co.uk music.sotlab.co.uk')
caddy.write_text(s)

cf = Path('/home/admin/.cloudflared/config.yml')
s = cf.read_text()
s = s.replace('  - hostname: music.sotlab.co.uk\n    service: http_status:503',
              '  - hostname: music.sotlab.co.uk\n    service: http://127.0.0.1:80')
cf.write_text(s)
PY

PYTHONPYCACHEPREFIX=/tmp/sotlab-pycache python3 -m py_compile /srv/apps/sotlab-users/sotlab_users_app.py
caddy validate --config /etc/caddy/Caddyfile
systemctl restart sotlab-users.service
systemctl reload caddy.service
systemctl restart cloudflared-sotlab.service
sleep 4
systemctl is-active --quiet sotlab-users.service
systemctl is-active --quiet caddy.service
systemctl is-active --quiet cloudflared-sotlab.service
