#!/bin/bash

# Vérifier si Zenity est installé
if ! command -v zenity &> /dev/null; then
    echo "Zenity n'est pas installé. Installation en cours..."
    sudo apt update && sudo apt install -y zenity
fi

# Afficher une popup d'avertissement
zenity --warning --title="⚠️ Attention ⚠️" --width=400 --text="Ce script va modifier la configuration du serveur. Assurez-vous d'avoir une sauvegarde."

# Demander les informations avec Zenity
user_input=$(zenity --forms --title="Configuration du serveur" --text="Renseignez les informations :" \
    --add-entry="Adresse IP" \
    --add-entry="Nouveau hostname" \
    --add-password="Mot de passe smauro")

# Vérifier si l'utilisateur a annulé
if [ $? -ne 0 ]; then
    zenity --error --title="Annulé" --text="L'installation a été annulée."
    exit 1
fi

# Extraire les valeurs
target_ip=$(echo "$user_input" | awk -F '|' '{print $1}')
ansible_hostname=$(echo "$user_input" | awk -F '|' '{print $2}')
smauro_password=$(echo "$user_input" | awk -F '|' '{print $3}')

# Vérifier les entrées
if [[ -z "$target_ip" || -z "$ansible_hostname" || -z "$smauro_password" ]]; then
    zenity --error --title="Erreur" --text="Tous les champs sont obligatoires."
    exit 1
fi

# Créer un fichier d'inventaire dynamique
inventory_file="dynamic_inventory.ini"
echo "[server_web]" > "$inventory_file"
echo "$target_ip ansible_user=root ansible_ssh_pass=testtest" >> "$inventory_file"

# Créer un fichier JSON contenant les variables Ansible (Évite les problèmes de quotes)
vars_file="vars.json"
cat <<EOF > "$vars_file"
{
    "ansible_hostname": "$ansible_hostname",
    "user_password": "$smauro_password"
}
EOF

# Exécuter le playbook Ansible
ansible-playbook -i "$inventory_file" -u root --ask-become-pass playbooks/debian_fullserver_web.yml -e "@$vars_file"

# Supprimer les fichiers temporaires
rm -f "$inventory_file" "$vars_file"

# Afficher un message de succès
zenity --info --title="Installation terminée" --text="Le playbook a été exécuté avec succès !"

