#!/bin/bash

# ==============================================================================
# Script: Adobe Total Purge - Ultra Safe Edition (Double Pass + Unmount)
# ADVERTENCIA: Ejecutar con sudo.
# ==============================================================================

if [[ $EUID -ne 0 ]]; then
   echo "Este script debe ejecutarse como root (sudo)"
   exit 1
fi

LOG_FILE="/var/log/adobe_total_purge.log"
echo "--- Iniciando limpieza profunda de Adobe: $(date) ---" > "$LOG_FILE"

# --- 1. FUNCIÓN PARA DESMONTAR UNIDADES EXTERNAS ---
unmount_external_drives() {
    echo ">> Verificando unidades externas..."
    # Listar volúmenes en /Volumes omitiendo el disco del sistema
    EXTERNAL_VOLUMES=$(ls /Volumes | grep -v "Macintosh HD") # Ajusta si tu disco tiene otro nombre

    if [ -n "$EXTERNAL_VOLUMES" ]; then
        echo "   > Unidades externas detectadas. Desmontando para proteger datos..."
        while read -r volume; do
            echo "     - Expulsando: /Volumes/$volume"
            diskutil unmountDisk "/Volumes/$volume" >> "$LOG_FILE" 2>&1
        done <<< "$EXTERNAL_VOLUMES"
        echo "   > Unidades externas desmontadas."
    else
        echo "   > No se detectaron unidades externas."
    fi
}

# --- 2. LISTA DE OBJETIVOS (TARGETS) ---
TARGETS=(
    "$HOME/Library/Application Support/Adobe"
    "$HOME/Library/Application Support/.Adobe"
    "$HOME/Library/Application Support/com.adobe"*
    "$HOME/Library/Caches/Adobe"*
    "$HOME/Library/Caches/com.adobe"*
    "$HOME/Library/Group Containers/Adobe"*
    "$HOME/Library/Group Containers/com.adobe"*
    "$HOME/Library/Group Containers/JQ525L2MZD.com.adobe"*
    "$HOME/Library/HTTPStorages/com.adobe"*
    "$HOME/Library/HTTPStorages/Creative Cloud"*
    "$HOME/Library/LaunchAgents/com.adobe"*
    "$HOME/Library/Logs/Adobe"*
    "$HOME/Library/Logs/Creative Cloud"*
    "$HOME/Library/Logs/CoreSync"*
    "$HOME/Library/Preferences/Adobe"*
    "$HOME/Library/Preferences/com.adobe"*
    "$HOME/Library/Saved Application State/com.adobe"*
    "/Library/Application Support/Adobe"
    "/Library/LaunchAgents/com.adobe"*
    "/Library/LaunchDaemons/com.adobe"*
    "/Library/Logs/Adobe"*
    "/Library/Preferences/com.adobe"*
    "/Library/PrivilegedHelperTools/com.adobe"*
    "/Applications/Adobe"*
    "/Applications/Utilities/Adobe"
)

# --- 3. FUNCIÓN DE LIMPIEZA ---
perform_cleanup() {
    echo ">> Iniciando pasada de limpieza..."
    
    # Matar procesos
    echo "   > Forzando cierre de procesos (CoreSync, CCX, AGS, etc.)..."
    pkill -9 -i "Adobe" >> "$LOG_FILE" 2>&1
    pkill -9 -i "Creative Cloud" >> "$LOG_FILE" 2>&1
    pkill -9 -i "CoreSync" >> "$LOG_FILE" 2>&1
    pkill -9 -i "CCXProcess" >> "$LOG_FILE" 2>&1
    pkill -9 -i "AGS" >> "$LOG_FILE" 2>&1
    sleep 3
    
    # Borrar targets
    for path in "${TARGETS[@]}"; do
        if [ -e "$path" ]; then
            echo "     - Eliminando: $path" >> "$LOG_FILE"
            rm -rf "$path" >> "$LOG_FILE" 2>&1
        fi
    done
}

# ==============================================================================
# EJECUCIÓN DEL FLUJO
# ==============================================================================

# Paso 1: Protección de datos externos
unmount_external_drives

# Paso 2: Primera pasada de limpieza
echo ">> PASADA 1: Borrado inicial..."
perform_cleanup

# Paso 3: Segunda pasada de verificación
echo ">> PASADA 2: Verificación de residuos y procesos persistentes..."
perform_cleanup

# Paso 4: Refrescar sistema
echo ">> Actualizando base de datos de aplicaciones..."
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
killall Finder

echo "--------------------------------------------------"
echo "LIMPIEZA CULMINADA CON ÉXITO."
echo "Detalles en: $LOG_FILE"
echo "IMPORTANTE: Reinicia tu Mac ahora mismo antes de instalar nada."
echo "--------------------------------------------------"