#!/usr/bin/env bash
set -euo pipefail
stamp="$(date +%Y%m%d%H%M%S)"
cd /srv/apps/sotlab-music
printf '%s\n' '--- backing up Ampache config/theme assets ---'
sudo docker exec sotlab-music-ampache-1 sh -lc "cp /var/www/config/ampache.cfg.php /var/www/config/ampache.cfg.php.bak.sotlab-brand.$stamp && cp /var/www/public/themes/reborn/templates/default.css /var/www/public/themes/reborn/templates/default.css.bak.sotlab-brand.$stamp && cp /var/www/public/themes/reborn/templates/dark.css /var/www/public/themes/reborn/templates/dark.css.bak.sotlab-brand.$stamp && cp /var/www/public/themes/reborn/theme.cfg.php /var/www/public/themes/reborn/theme.cfg.php.bak.sotlab-brand.$stamp && cp /var/www/public/themes/reborn/images/ampache-dark.png /var/www/public/themes/reborn/images/ampache-dark.png.bak.sotlab-brand.$stamp && cp /var/www/public/themes/reborn/images/ampache-light.png /var/www/public/themes/reborn/images/ampache-light.png.bak.sotlab-brand.$stamp"
printf '%s\n' '--- copying Sot Lab logo into theme ---'
sudo docker cp /srv/www/webpi/assets/sotlab-logo.png sotlab-music-ampache-1:/var/www/public/themes/reborn/images/sotlab-logo.png
sudo docker exec sotlab-music-ampache-1 sh -lc "cp /var/www/public/themes/reborn/images/sotlab-logo.png /var/www/public/themes/reborn/images/ampache-dark.png && cp /var/www/public/themes/reborn/images/sotlab-logo.png /var/www/public/themes/reborn/images/ampache-light.png"
printf '%s\n' '--- patching config/css ---'
sudo docker exec -i sotlab-music-ampache-1 python3 - <<'PY'
from pathlib import Path
cfg=Path('/var/www/config/ampache.cfg.php')
s=cfg.read_text()
settings={
    'catalog_ignore_pattern': r'(^|/)\._',
    'local_web_path': 'https://music.sotlab.co.uk',
    'web_path': '',
    'allow_zip_download': 'false',
    'allow_public_registration': 'false',
    'allow_lost_password': 'false',
}
for key,val in settings.items():
    line=f'{key} = "{val}"'
    import re
    if re.search(rf'^;?{re.escape(key)}\s*=', s, flags=re.M):
        s=re.sub(rf'^;?{re.escape(key)}\s*=.*$', line, s, flags=re.M)
    else:
        s += '\n' + line + '\n'
cfg.write_text(s)
css=Path('/var/www/public/themes/reborn/templates/default.css')
append='''

/* Sot Lab Music brand overlay — managed by Hephaestus */
:root {
    --sotlab-bg: #07111f;
    --sotlab-panel: rgba(10, 21, 37, .92);
    --sotlab-cyan: #7dd3fc;
    --sotlab-violet: #c084fc;
    --sotlab-ink: #e5f4ff;
}
body, #maincontainer, #content, #sidebar, #rightbar {
    background: radial-gradient(circle at 20% 0%, rgba(125,211,252,.13), transparent 34%),
                radial-gradient(circle at 88% 10%, rgba(192,132,252,.12), transparent 28%),
                var(--sotlab-bg) !important;
    color: var(--sotlab-ink);
}
#header, #mobileheader, #sidebar, #rightbar, .box, .box-content, .box_header, .tabledata, table.tabledata {
    background-color: var(--sotlab-panel) !important;
    border-color: rgba(125,211,252,.20) !important;
}
#header #logo img, #header #headerlogo img, #mobileheader #logo img, #loginPage #logo, #registerPage #logo {
    border-radius: 26px;
    filter: drop-shadow(0 0 22px rgba(125,211,252,.34));
}
#header #headerlogo::after {
    content: "Sot Lab Music";
    display: inline-block;
    margin-left: 12px;
    vertical-align: top;
    line-height: 64px;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -.04em;
    color: var(--sotlab-ink);
}
#footer #ampache_link::before { content: "Sot Lab Music · "; color: var(--sotlab-cyan); }
a, .link, .button, button, input[type=submit] { color: var(--sotlab-cyan); }
button, input[type=submit], .button, .button-primary {
    background: linear-gradient(135deg, rgba(125,211,252,.22), rgba(192,132,252,.20)) !important;
    border: 1px solid rgba(125,211,252,.36) !important;
    border-radius: 999px !important;
}
'''
text=css.read_text()
if 'Sot Lab Music brand overlay' not in text:
    css.write_text(text + append)
theme=Path('/var/www/public/themes/reborn/theme.cfg.php')
ts=theme.read_text().replace('name = "Reborn"', 'name = "Sot Lab Music"').replace('description = "Reborn Ampache Theme"', 'description = "Sot Lab Music private listening room"')
theme.write_text(ts)
PY
printf '%s\n' '--- restart ampache ---'
sudo docker restart sotlab-music-ampache-1 >/dev/null
sleep 5
sudo docker ps --filter name=sotlab-music-ampache-1 --format '{{.Names}} {{.Status}}'
sudo docker exec sotlab-music-ampache-1 sh -lc "grep -nE '^(catalog_ignore_pattern|local_web_path|allow_zip_download|allow_public_registration|allow_lost_password)' /var/www/config/ampache.cfg.php"
