#!/usr/bin/env bash
set -euo pipefail

# --- Config ---
REPO_DIR="C:/xampp/htdocs/core"   # ruta local del repo clonado
BRANCH="testing"
REMOTE_USER="root"
REMOTE_HOST="128.250.13.2"
REMOTE_PARENT="/var/www"          # destino padre; la carpeta quedará en /var/www/core
REMOTE_DIRNAME="core"
PHP_BIN="php"

# Algoritmos legacy SOLO para 128.250.13.2
SSH_OPTS='-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa -oKexAlgorithms=+diffie-hellman-group14-sha1 -oCiphers=+aes128-ctr,aes256-ctr -oMACs=+hmac-sha1 -oStrictHostKeyChecking=no'

# --- Normalizar ruta local a POSIX si estamos en Git Bash (cygpath disponible) ---
if command -v cygpath >/dev/null 2>&1; then
  REPO_DIR_POSIX="$(cygpath -u "$REPO_DIR")"
else
  REPO_DIR_POSIX="$REPO_DIR"
fi

# --- Pull local ---
cd "$REPO_DIR_POSIX"
git fetch origin
git checkout "$BRANCH"
git pull --ff-only origin "$BRANCH"

# --- Prepara carpeta remota y copia LA CARPETA ENTERA (sin usar "*") ---
ssh $SSH_OPTS "${REMOTE_USER}@${REMOTE_HOST}" "mkdir -p '${REMOTE_PARENT}'"
echo "→ Copiando carpeta completa con scp..."
scp $SSH_OPTS -r "$REPO_DIR_POSIX" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PARENT}/"

# --- Post-deploy en el server (Symfony 1) ---
ssh $SSH_OPTS "${REMOTE_USER}@${REMOTE_HOST}" bash <<EOSSH
set -euo pipefail
cd "${REMOTE_PARENT}/${REMOTE_DIRNAME}"

mkdir -p cache log
chown -R www-data:www-data cache log
chmod -R 775 cache log

${PHP_BIN} symfony cc || ${PHP_BIN} symfony cache:clear || true
${PHP_BIN} symfony plugin:publish-assets || true

# Opcional:
# ${PHP_BIN} symfony doctrine:build --all-classes --no-confirmation || true
# ${PHP_BIN} symfony propel:build-model || true
# systemctl reload apache2 2>/dev/null || service apache2 reload 2>/dev/null || true
# systemctl reload nginx   2>/dev/null || service nginx reload   2>/dev/null || true
EOSSH

echo "✅ Deploy OK a ${REMOTE_HOST}:${REMOTE_PARENT}/${REMOTE_DIRNAME} (branch ${BRANCH})"
