devs/bin/fix_haos_paths.sh
2025-04-02 21:54:22 -05:00

91 lines
No EOL
3.6 KiB
Bash
Executable file

#!/bin/bash
#Script : fix_haos_paths.sh
#Apps : MRDEVS TOOLS
#Description : Corrige rutas en contenedores HAOS existentes y crea estructura correcta
#Author : Cortana Rosero One <cortana@rosero.one>
#Created : 2025/04/02 12:00:00
#Modified : 2025/04/02 12:00:00
#Version : 1.0.0
#==============================================================================
# Derechos de Autor [2025] [Mauro Rosero P. <mauro@rosero.one>]
#==============================================================================
# Este programa es software libre: usted puede redistribuirlo y/o modificarlo
# bajo los términos de la Licencia Pública Affero General de GNU tal como
# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia,
# o (a su elección) cualquier versión posterior.
#
# Este programa se distribuye con la esperanza de que sea útil,
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
# Licencia Pública Affero General de GNU para obtener más detalles.
#
# Debería haber recibido una copia de la Licencia Pública Affero General
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
# [Generated] Created by Claude Code (claude-3-7-sonnet-20250219)
echo "=== Corrigiendo rutas de Home Assistant ==="
# Configuración de contenedores
HA_CORE_CONTAINER_NAME="homeassistant"
HA_OS_CONTAINER_NAME="haos"
# Asegurar que estamos en un directorio de proyecto
if [[ ! "$PWD" == *"/projects/"* ]]; then
echo "ADVERTENCIA: No parece estar en un directorio de proyecto."
echo "Este script debe ejecutarse desde la carpeta del proyecto (ej: /home/mrosero/devs/projects/ha-home)"
read -p "¿Desea continuar de todos modos? (s/n): " CONTINUE
if [[ ! "$CONTINUE" =~ ^[Ss]$ ]]; then
echo "Operación cancelada."
exit 1
fi
fi
# Crear estructura de directorios correcta
echo "Creando estructura de directorios correcta en $PWD/ha"
mkdir -p "$PWD/ha/config" "$PWD/ha/media" "$PWD/ha/ssl" "$PWD/ha/share"
chmod -R 755 "$PWD/ha"
# Verificar y detener contenedores si están ejecutándose
for CONTAINER in $HA_CORE_CONTAINER_NAME $HA_OS_CONTAINER_NAME; do
if podman container exists $CONTAINER; then
echo "Deteniendo contenedor $CONTAINER..."
podman stop $CONTAINER
echo "Eliminando contenedor $CONTAINER (los datos persistirán)..."
podman rm $CONTAINER
fi
done
# Verificar si existe la estructura antigua
OLD_PATH="/home/mrosero/devs/homeassistant"
if [ -d "$OLD_PATH" ]; then
echo "Se encontró estructura antigua en $OLD_PATH"
# Migrar datos si es necesario
if [ -d "$OLD_PATH/config" ] && [ "$(ls -A "$OLD_PATH/config" 2>/dev/null)" ]; then
echo "Migrando datos de configuración..."
cp -r "$OLD_PATH/config/"* "$PWD/ha/config/"
fi
if [ -d "$OLD_PATH/media" ] && [ "$(ls -A "$OLD_PATH/media" 2>/dev/null)" ]; then
echo "Migrando datos de media..."
cp -r "$OLD_PATH/media/"* "$PWD/ha/media/"
fi
if [ -d "$OLD_PATH/ssl" ] && [ "$(ls -A "$OLD_PATH/ssl" 2>/dev/null)" ]; then
echo "Migrando certificados SSL..."
cp -r "$OLD_PATH/ssl/"* "$PWD/ha/ssl/"
fi
if [ -d "$OLD_PATH/share" ] && [ "$(ls -A "$OLD_PATH/share" 2>/dev/null)" ]; then
echo "Migrando datos compartidos..."
cp -r "$OLD_PATH/share/"* "$PWD/ha/share/"
fi
echo "Respaldando estructura antigua a ${OLD_PATH}_backup..."
mv "$OLD_PATH" "${OLD_PATH}_backup"
fi
echo "=== Operación completada ==="
echo "Ahora puede iniciar Home Assistant con:"
echo "../../bin/haos.sh start"