#!/usr/bin/env bash
set -euo pipefail
DESTINO="${1:-/home/iotcuboc/pyme}"
ORIGEN="$(cd "$(dirname "$0")" && pwd)"
MARCA="$(date +%Y%m%d_%H%M%S)"
RESPALDO="$DESTINO/respaldos/costos_visual_v4_7_2_$MARCA"
ARCHIVOS=("app/includes/item_select_v3.php" "public/costos_v3.php")
if [ ! -d "$DESTINO/public" ] || [ ! -d "$DESTINO/app/includes" ]; then echo "ERROR: instalación no reconocida en $DESTINO"; exit 1; fi
for archivo in "${ARCHIVOS[@]}"; do [ -f "$ORIGEN/$archivo" ] || { echo "ERROR: falta $archivo"; exit 1; }; php -l "$ORIGEN/$archivo" || exit 1; done
mkdir -p "$RESPALDO/app/includes" "$RESPALDO/public"
for archivo in "${ARCHIVOS[@]}"; do if [ -f "$DESTINO/$archivo" ]; then cp -p "$DESTINO/$archivo" "$RESPALDO/$archivo"; else echo "$archivo" >> "$RESPALDO/NUEVOS.txt"; fi; done
printf '%s\n' "${ARCHIVOS[@]}" > "$RESPALDO/ARCHIVOS.txt"
restaurar(){ while IFS= read -r archivo; do if [ -f "$RESPALDO/$archivo" ]; then cp -p "$RESPALDO/$archivo" "$DESTINO/$archivo"; fi; done < "$RESPALDO/ARCHIVOS.txt"; }
trap 'restaurar' ERR
for archivo in "${ARCHIVOS[@]}"; do cp -p "$ORIGEN/$archivo" "$DESTINO/$archivo"; php -l "$DESTINO/$archivo" >/dev/null; done
trap - ERR
echo "Diseño Centro de Costos v4.7.2 instalado correctamente."
echo "Respaldo: $RESPALDO"

