#!/bin/bash

# ======================================================================
# Este script pertenecía al paquete parche-nvidia-persistenced,
# ahora obsoleto y consolidado dentro de quirinux-nvidia-config.
# Se ejecuta de forma diferida (autostart de sesión) para evitar
# invocar apt-get remove/install desde dentro de una transacción
# de dpkg (postinst), lo que podría chocar con el lock de apt.
# ======================================================================

FLAG="/opt/parches/ok-nvidia"

echo "DEBUG: Iniciando script..."
echo "DEBUG: Comprobando si ya existe $FLAG"

if [ -f "$FLAG" ]; then
    echo "DEBUG: Flag encontrado, el parche ya se aplicó. Saliendo."
    exit 0
else
    echo "DEBUG: Flag NO encontrado"
fi

# Verificar si se ejecuta como root
if [ "$EUID" -ne 0 ]; then
    echo "ERROR: No se ejecuta como root (EUID=$EUID). Usa sudo."
    exit 1
fi
echo "DEBUG: Script ejecutándose como root"

# Mensajes traducidos
declare -A MSGS
MSGS[es]="Se ha corregido el error que impedía actualizar."
MSGS[gl]="Corrixiuse o erro que impedía actualizar."
MSGS[en]="The error preventing updates has been fixed."
MSGS[pt]="O erro que impedia a atualização foi corrigido."
MSGS[de]="Der Fehler, der Updates verhinderte, wurde behoben."
MSGS[fr]="L'erreur qui empêchait la mise à jour a été corrigée."
MSGS[it]="È stato corretto l'errore che impediva l'aggiornamento."

SYS_LANG=$(echo "${LANG:-en}" | cut -d '_' -f1)
MSG="${MSGS[$SYS_LANG]:-${MSGS[en]}}"

# Comprobamos si el paquete nvidia-persistenced está instalado
if dpkg -s nvidia-persistenced &>/dev/null; then
    echo "DEBUG: nvidia-persistenced está instalado, procediendo a desinstalar..."
    apt-get remove -y nvidia-persistenced || echo "ERROR: Falló apt-get remove"
    apt-get autoremove --purge -y || echo "ERROR: Falló apt-get autoremove"
    apt-get update -y || echo "ERROR: Falló apt-get update"

    # NOTA: anteriormente aquí se reinstalaba "quirinux-opencl-support"
    # para recuperar el soporte OpenCL tras purgar nvidia-persistenced.
    # Ese paquete quedó retirado y absorbido dentro de quirinux-config
    # (que además lo declara Breaks/Replaces), así que intentar
    # instalarlo de nuevo es innecesario y, si el paquete llegara a
    # resolverse desde algún repositorio, forzaría a apt a desinstalar
    # quirinux-config para satisfacer el Breaks. El soporte OpenCL para
    # GPUs Intel/AMD ya viene incluido en quirinux-config, por lo que
    # no se requiere ninguna acción adicional aquí.

    # Mostrar mensaje informativo
    echo "DEBUG: Mostrando mensaje con zenity"
    zenity --info --text="$MSG" --title="Información"

else
    echo "DEBUG: nvidia-persistenced NO está instalado, no se requiere acción"
fi

# Intentar crear directorio y flag
echo "DEBUG: Creando directorio /opt/parches si no existe"
mkdir -p /opt/parches
if [ $? -ne 0 ]; then
    echo "ERROR: No se pudo crear el directorio /opt/parches"
else
    echo "DEBUG: Directorio /opt/parches creado o ya existía"
fi

echo "DEBUG: Creando archivo flag $FLAG"
touch "$FLAG"
if [ $? -ne 0 ]; then
    echo "ERROR: No se pudo crear el archivo $FLAG"
else
    echo "DEBUG: Archivo $FLAG creado correctamente"
fi

echo "DEBUG: Script finalizado"

