#!/bin/bash

# ==========================================
# VARIABLES À REMPLIR
# ==========================================
# Astuce : utilisez la commande 'ip a' pour trouver le nom exact de votre interface
INTERFACE="" # Exemples : eth0, ens18, enp0s3...
IP_ADDRESS=""
NETMASK=""
GATEWAY=""
DNS_1="" # Serveur DNS primaire (ex: Cloudflare)
DNS_2="" # Serveur DNS secondaire (ex: Google)

# ==========================================
# DÉBUT DU SCRIPT
# ==========================================

# 1. Vérification des privilèges root
if [ "$EUID" -ne 0 ]; then
  echo "Erreur : Ce script doit être exécuté en tant que root (ou via sudo)."
  exit 1
fi

# 2. Vérification et installation de resolvconf si nécessaire
if ! dpkg -s resolvconf >/dev/null 2>&1; then
  echo "Vérification de la connexion internet pour l'installation de resolvconf..."
  if ping -q -c 1 -W 2 google.fr >/dev/null; then
    echo "Connexion internet détectée. Installation de resolvconf en cours..."
    apt-get update && apt-get install -y resolvconf
  else
    echo "Avertissement : Pas de connexion internet externe. Impossible d'installer automatiquement resolvconf."
  fi
else
  echo "Le paquet resolvconf est déjà installé."
fi

# 3. Install fastfetch
apt-get install fastfetch -y  
echo "fastfetch installé"

# 4. Affichage des informations système
echo "Informations système :"
fastfetch

echo "Début de la configuration réseau pour $INTERFACE..."

# 6. Sauvegarde de la configuration actuelle
BACKUP_FILE="/etc/network/interfaces.backup_$(date +%Y%m%d_%H%M%S)"
echo "Création d'une sauvegarde de /etc/network/interfaces vers $BACKUP_FILE"
cp /etc/network/interfaces "$BACKUP_FILE"

# 7. Écriture de la nouvelle configuration
echo "Application de la nouvelle adresse IP statique ($IP_ADDRESS)..."

cat <<EOF > /etc/network/interfaces
# Ce fichier décrit les interfaces réseau disponibles sur votre système
# et comment les activer. Pour plus d'informations, voir interfaces(5).

source /etc/network/interfaces.d/*

# L'interface réseau de boucle locale (loopback)
auto lo
iface lo inet loopback

# Votre interface réseau principale
auto $INTERFACE
allow-hotplug $INTERFACE
iface $INTERFACE inet static
    address $IP_ADDRESS
    netmask $NETMASK
    gateway $GATEWAY
    dns-nameservers $DNS_1 $DNS_2
EOF

# 8. Application des changements
echo "Redémarrage du service réseau..."
systemctl restart networking

# Si systemctl restart networking échoue (parfois capricieux sur Debian avec SSH),
# on peut aussi forcer le redémarrage de l'interface spécifique :
# ifdown $INTERFACE && ifup $INTERFACE

echo "Configuration terminée !"

fastfetch