montana/Russian/Site/montana-hub-theme/deploy.sh
2026-05-18 18:05:32 +03:00

51 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
REMOTE=montana-moscow
CUSTOM=/var/lib/gitea/custom
HERE="$(cd "$(dirname "$0")" && pwd)"
echo "→ Сборка PNG-логотипов на сервере (librsvg)"
ssh "$REMOTE" "command -v rsvg-convert >/dev/null || apt-get install -y librsvg2-bin"
echo "→ Заливаем тему/шаблоны/SVG"
ssh "$REMOTE" "mkdir -p $CUSTOM/public/assets/css $CUSTOM/public/assets/img $CUSTOM/templates/custom"
rsync -avz "$HERE/public/" "$REMOTE:$CUSTOM/public/"
rsync -avz "$HERE/templates/" "$REMOTE:$CUSTOM/templates/"
echo "→ Растеризуем SVG в PNG (logo.png, apple-touch-icon.png, favicon.png)"
ssh "$REMOTE" "cd $CUSTOM/public/assets/img && \
rsvg-convert -w 512 -h 512 logo.svg -o logo.png && \
rsvg-convert -w 180 -h 180 favicon.svg -o apple-touch-icon.png && \
rsvg-convert -w 32 -h 32 favicon.svg -o favicon.png && \
chown -R git:git $CUSTOM"
echo "→ Регистрируем тему в app.ini"
ssh "$REMOTE" "python3 - <<'PY'
import re, pathlib
p = pathlib.Path('/etc/gitea/app.ini')
s = p.read_text()
if '[ui]' not in s:
s += '\n[ui]\n'
section = re.search(r'(\[ui\][^\[]*)', s)
block = section.group(1)
new = block
if 'DEFAULT_THEME' not in new:
new += 'DEFAULT_THEME = montana\n'
else:
new = re.sub(r'DEFAULT_THEME\s*=.*', 'DEFAULT_THEME = montana', new)
if 'THEMES' not in new:
new += 'THEMES = montana,gitea-light,gitea-dark,gitea-auto,gitea-light-protanopia-deuteranopia,gitea-dark-protanopia-deuteranopia\n'
else:
new = re.sub(r'THEMES\s*=.*', 'THEMES = montana,gitea-light,gitea-dark,gitea-auto,gitea-light-protanopia-deuteranopia,gitea-dark-protanopia-deuteranopia', new)
s = s.replace(block, new)
p.write_text(s)
print('app.ini обновлён')
PY"
echo "→ Перезапускаем Gitea"
ssh "$REMOTE" "systemctl restart gitea && sleep 2 && systemctl is-active gitea"
echo "→ Проверка"
curl -sI https://hub.montana.quest/ | head -3