#!/bin/bash

ask_password() {
    while true; do
        password=$(zenity --password --title="Autenticación de sudo" --text="Por favor, ingresa tu contraseña de sudo:")
        
        if [ $? -ne 0 ]; then
            echo "Cancelado por el usuario"
            exit 1
        fi
        
        echo "$password" | sudo -S echo "" &>/dev/null
        
        if [ $? -eq 0 ]; then
            break  
        else
            zenity --error --text="Error al aplicar la solución a Deepin 23 \nContraseña incorrecta. \nIngresa correctamente la clave sudo."
        fi
    done
}

if ! command -v zenity &> /dev/null; then
    echo "Zenity no está instalado. Instálalo para continuar."
    exit 1
fi

distribucion=$(lsb_release -s --d)

script_path="/usr/share/webapps-creator-ui/webapps-creator-ui.py"
config_dir="$HOME/.webapps-creator-ui"
config_file="$config_dir/write.json"

# Crear el directorio de configuración si no existe
mkdir -p "$config_dir"

# Verificar si el cambio ya se aplicó
if [[ "$distribucion" == "Deepin 23" ]]; then
    if [ -f "$config_file" ] && grep -q '"change_applied": true' "$config_file"; then
        echo "El cambio ya se aplicó previamente."
    else
        echo "Asignando solución para Deepin 23"
        ask_password 
        echo "$password" | sudo -S sed -i 's/config\.write(desktop_file)/config\.write(desktop_file, space_around_delimiters=False)/' "$script_path"
        
        # Actualizar el archivo write.json para indicar que el cambio se aplicó
        echo '{"change_applied": true}' > "$config_file"
    fi
fi

/usr/share/webapps-creator-ui/webapps-creator-ui.py

exit 0