Files
homepage-nuova/gitea-theme-pack/gitea_theme.sh
T
zomas f5c763be7b Gitea theme: capital theta (circle+H) logo + homepage senza badge
- Logo/favicon ridisegnati come theta maiuscola: cerchio (anello)
  con 'H' centrata, clearance verificata (non tocca l'anello); ring
  ispessito per la favicon; centratura ottica verificata.
- Rimosso il badge 'Self-hosted Git' dal hero della homepage (era
  esteticamente di troppo) - CSS e markup.
- Aggiornati generate_theta.py, README, home.tmpl; caricati sul VPS in
  staging (md5 locali == remoti); tarball ricostruito.
- Salvataggio iniziale dell'intero admin pack in git.
2026-09-01 16:54:15 +02:00

134 lines
4.6 KiB
Bash
Executable File

#!/bin/bash
# Gitea theme manager — installa o ripristina homepage + favicon custom.
# DA ESEGUIRE COME ROOT SUL VPS (o con sudo).
#
# Uso:
# bash gitea_theme.sh install # applica la homepage moderna + favicon
# bash gitea_theme.sh rollback # torna allo stato iniziale
# bash gitea_theme.sh # come "install"
set -euo pipefail
CUSTOM_DIR="${CUSTOM_DIR:-/var/lib/gitea/custom}"
SRC_DIR="$(cd "$(dirname "$0")" && pwd)/custom"
STATE_FILE="$CUSTOM_DIR/.gitea-theme-state"
MODE="${1:-install}"
case "$MODE" in
install|rollback) : ;;
*) echo "Uso: $0 [install|rollback]"; exit 2 ;;
esac
if [ "$(id -u)" != "0" ]; then
echo "ERRORE: devi eseguire questo script come root (o sudo)."
exit 1
fi
# ---------------------------------------------------------------- verifica
echo "==> Modalità: $MODE"
echo "==> Custom dir: $CUSTOM_DIR"
# ---------------------------------------------------------------- install
install_theme() {
STAMP="$(date +%Y%m%d-%H%M%S)"
BACKUP_DIR="${CUSTOM_DIR}/.backup-${STAMP}"
if [ ! -d "$SRC_DIR" ]; then
echo "ERRORE: cartella sorgente '$SRC_DIR' non trovata (script in cartella sbagliata?)."
exit 1
fi
# 1) Backup delle eventuali personalizzazioni esistenti
HAD_PREV=no
if [ -e "$CUSTOM_DIR/templates/home.tmpl" ] || [ -e "$CUSTOM_DIR/public/assets/img" ]; then
HAD_PREV=yes
mkdir -p "$BACKUP_DIR"
for p in templates/home.tmpl public/assets/img; do
if [ -e "$CUSTOM_DIR/$p" ]; then
mkdir -p "$BACKUP_DIR/$(dirname "$p")"
cp -a "$CUSTOM_DIR/$p" "$BACKUP_DIR/$p"
echo "==> Backup salvato: $BACKUP_DIR/$p"
fi
done
else
echo "==> Nessuna personalizzazione precedente, niente da salvare."
fi
# 2) Copia dei nuovi file
mkdir -p "$CUSTOM_DIR/templates" "$CUSTOM_DIR/public/assets/img"
cp "$SRC_DIR/templates/home.tmpl" "$CUSTOM_DIR/templates/home.tmpl"
cp "$SRC_DIR/public/assets/img/"* "$CUSTOM_DIR/public/assets/img/"
echo "==> File copiati:"
ls -l "$CUSTOM_DIR/templates/home.tmpl"
ls -l "$CUSTOM_DIR/public/assets/img/"
# 3) Permessi corretti (il processo gitea gira come utente gitea)
chown -R gitea:gitea "$CUSTOM_DIR"
echo "==> Permessi impostati (gitea:gitea)."
# 4) Stato per il rollback
{
echo "installed_at=$STAMP"
echo "backup_dir=$BACKUP_DIR"
echo "had_custom=$HAD_PREV"
} > "$STATE_FILE"
echo "==> Stato rollback salvato in $STATE_FILE"
}
# ---------------------------------------------------------------- rollback
rollback_theme() {
# 1) Leggi lo stato di installazione (se esiste)
BACKUP_DIR=""
HAD_PREV=no
if [ -f "$STATE_FILE" ]; then
source "$STATE_FILE" 2>/dev/null || true
echo "==> Stato trovato: installato $installed_at, backup=${backup_dir:-nessuno}, precedente=$had_custom"
fi
# 2) Rimuovi i file del tema
rm -f "$CUSTOM_DIR/templates/home.tmpl"
rm -rf "$CUSTOM_DIR/public/assets/img"
echo "==> File del tema rimossi (home.tmpl e assets/img)."
# 3) Ripristina l'eventuale personalizzazione precedente dal backup
if [ "$HAD_PREV" = "yes" ] && [ -n "${BACKUP_DIR:-}" ] && [ -d "$BACKUP_DIR" ]; then
echo "==> Ripristino personalizzazione precedente da $BACKUP_DIR"
if [ -f "$BACKUP_DIR/templates/home.tmpl" ]; then
mkdir -p "$CUSTOM_DIR/templates"
cp -a "$BACKUP_DIR/templates/home.tmpl" "$CUSTOM_DIR/templates/home.tmpl"
fi
if [ -d "$BACKUP_DIR/public/assets/img" ]; then
mkdir -p "$CUSTOM_DIR/public/assets/img"
cp -a "$BACKUP_DIR/public/assets/img/." "$CUSTOM_DIR/public/assets/img/"
fi
fi
# 4) Rimuovi lo stato e le cartelle eventualmente vuote
rm -f "$STATE_FILE"
rmdir "$CUSTOM_DIR/public/assets/img" "$CUSTOM_DIR/public/assets" "$CUSTOM_DIR/public" 2>/dev/null || true
rmdir "$CUSTOM_DIR/templates" 2>/dev/null || true
echo "==> Stato rollback pulito."
# 5) Permessi
chown -R gitea:gitea "$CUSTOM_DIR" 2>/dev/null || true
}
# ---------------------------------------------------------------- esegui
if [ "$MODE" = "install" ]; then
install_theme
else
rollback_theme
fi
# ---------------------------------------------------------------- restart+verify
systemctl restart gitea
sleep 6
echo "==> Stato servizio: $(systemctl is-active gitea)"
if [ "$MODE" = "install" ]; then
echo "==> Verifica asset (favicon/logo):"
curl -sk -o /dev/null -w " /assets/img/favicon.svg -> %{http_code}\n" https://127.0.0.1/assets/img/favicon.svg 2>/dev/null || true
curl -sk -o /dev/null -w " /assets/img/logo.svg -> %{http_code}\n" https://127.0.0.1/assets/img/logo.svg 2>/dev/null || true
fi
echo ""
echo "FATTO ($MODE). Ricarica https://git.zomas.net (Ctrl+Shift+R per bypassare la cache)."