#!/bin/sh
# Despliega la web: baja la ultima compilacion de GitHub y la copia a ~/www.
# Vive en el servidor como ~/desplegar-web.sh; esta copia es la de referencia.
# Uso:  sh ~/desplegar-web.sh
set -e

CLON="$HOME/web-produccion"
DESTINO="$HOME/www"

cd "$CLON"
git fetch --depth 1 origin produccion
git reset --hard origin/produccion
echo "bajado: $(git log -1 --format='%h %s')"

# Copia encima, sin borrar nada de WordPress.
# El punto tras el / hace que copie el CONTENIDO, no la carpeta.
cp -r "$CLON"/. "$DESTINO"/ 2>/dev/null || true
rm -rf "$DESTINO/.git"

# WP Fastest Cache guarda copias en wp-content/cache/all/<ruta>/index.html y su
# regla del .htaccess las sirve ANTES de que Apache mire el DirectoryIndex. Si
# WordPress tiene una pagina con la misma ruta que una nuestra (paso con
# /politica-de-privacidad/), la version cacheada de WordPress tapa la estatica y
# no hay forma de verlo desde el navegador: parece que el despliegue no ha
# subido. Se borran las que chocan; el resto (tienda, producto) se quedan.
CACHE="$DESTINO/wp-content/cache"
if [ -d "$CACHE" ]; then
    borradas=0
    for pagina in $(find "$DESTINO" -maxdepth 1 -mindepth 1 -type d -exec basename {} \;); do
        case "$pagina" in
            wp-*|_astro|img|video|api|cgi-bin) continue ;;
        esac
        for dir in "$CACHE"/*/"$pagina"; do
            [ -d "$dir" ] || continue
            rm -rf "$dir"
            borradas=$((borradas + 1))
        done
    done
    echo "cache de WordPress purgada: $borradas ruta(s) que chocaban"
fi

echo "desplegado en $DESTINO"
echo "paginas: $(find "$DESTINO" -maxdepth 2 -name index.html | wc -l)"
