#!/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