#!/bin/bash

# Script para detener servicios Autodesk y eliminar todo rastro de Autodesk en macOS Mojave

# Función para mostrar progreso
echo_info() {
  echo -e "\033[1;34m[INFO]\033[0m $1"
}

# Detener servicios de Autodesk (si existen)
echo_info "Buscando y deteniendo servicios de Autodesk..."

# Intentar detener LaunchDaemons y LaunchAgents comunes de Autodesk
AUTODESK_SERVICES=(
  "com.autodesk.fpsaud.plist"
  "com.autodesk.licensing.helper.plist"
  "com.autodesk.AdAppMgrSvc.plist"
)

for service in "${AUTODESK_SERVICES[@]}"; do
  if sudo launchctl list | grep -q "$service"; then
    echo_info "Deteniendo servicio $service..."
    sudo launchctl bootout system "/Library/LaunchDaemons/$service" 2>/dev/null
    sudo launchctl bootout user/$(id -u) "/Library/LaunchAgents/$service" 2>/dev/null
  fi
done

# Eliminar procesos relacionados manualmente (por si quedan aún abiertos)
echo_info "Matando procesos relacionados con Autodesk..."
AUTODESK_PROCESSES=(
  "AdAppMgr"
  "AutodeskApplicationManager"
)

for proc in "${AUTODESK_PROCESSES[@]}"; do
  pkill -f "$proc" 2>/dev/null
done

# Eliminación de carpetas residuales
echo_info "Eliminando carpetas residuales de Autodesk..."

RUTAS=(
  "/Library/Autodesk"
  "/Library/Application Support/Autodesk"
  "/Library/Application Support/FLEXnet Publisher"
  "/Library/Frameworks/Adlm.framework"
  "/Library/LaunchDaemons/com.autodesk.*"
  "/Library/Preferences/.com.flexnetlicensing"
  "/Library/Preferences/Flexnet Publisher"
  "/Library/Preferences/FLEXnet Publisher/FLEXnet/adskflex_*"
  "$HOME/Adlm"
  "$HOME/Library/Application Support/Autodesk"
  "$HOME/Library/Logs/Autodesk*"
  "$HOME/Library/Preferences/com.autodesk*"
  "/Applications/Autodesk"

)

for ruta in "${RUTAS[@]}"; do
  if [ -e "$ruta" ]; then
    echo_info "Eliminando $ruta..."
    sudo rm -Rfv "$ruta"
  fi
done

# Limpieza final
echo_info "Vaciando la papelera..."
rm -rf ~/.Trash/*

echo_info "Proceso de desinstalación completado. Es recomendable reiniciar el sistema."

exit 0
