#!/usr/bin/env bash
set -u
PAQUETE_DIR="$(cd "$(dirname "$0")" && pwd)"
PROYECTO_DIR="${1:-/home/iotcuboc/pyme}"
MARCA="$(date +%Y%m%d_%H%M%S)"
RESPALDO_DIR="${PROYECTO_DIR}/respaldos/stock_expandir_excel_v4_5_1_${MARCA}"
ARCHIVO="public/stock_v3.php"
fallar(){ echo "ERROR: $1" >&2; exit 1; }
[ -d "$PROYECTO_DIR" ] || fallar "No existe el proyecto: $PROYECTO_DIR"
[ -f "$PROYECTO_DIR/$ARCHIVO" ] || fallar "Primero debe estar instalado Stock Agrupado v4.5"
[ -f "$PAQUETE_DIR/$ARCHIVO" ] || fallar "Falta el archivo del parche"
command -v php >/dev/null 2>&1 || fallar "PHP CLI no está disponible"
php -l "$PAQUETE_DIR/$ARCHIVO" >/dev/null || fallar "PHP inválido"
mkdir -p "$RESPALDO_DIR/public" || fallar "No se pudo crear el respaldo"
cp -p "$PROYECTO_DIR/$ARCHIVO" "$RESPALDO_DIR/$ARCHIVO" || fallar "No se pudo respaldar"
cp -p "$PAQUETE_DIR/$ARCHIVO" "$PROYECTO_DIR/$ARCHIVO" || { cp -p "$RESPALDO_DIR/$ARCHIVO" "$PROYECTO_DIR/$ARCHIVO"; fallar "No se pudo instalar; se restauró el archivo anterior"; }
php -l "$PROYECTO_DIR/$ARCHIVO" >/dev/null || { cp -p "$RESPALDO_DIR/$ARCHIVO" "$PROYECTO_DIR/$ARCHIVO"; fallar "Falló la validación final; se restauró el archivo anterior"; }
echo "Control global y Excel de Stock instalados correctamente."
echo "Respaldo: $RESPALDO_DIR"
echo "Para revertir: bash '$PAQUETE_DIR/RESTAURAR.sh' '$RESPALDO_DIR' '$PROYECTO_DIR'"
