From f6087a5e0f5becf25b86e6b7361a0ff06c8f8895 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9drix?= <cedric@abonnel.fr>
Date: Tue, 11 Mar 2025 20:45:21 +0100
Subject: [PATCH] ajout d'un script de suppression

---
 scripts/server-dhcp/.list_files.txt     |  1 +
 scripts/server-dhcp/remove_dns_entry.sh | 60 +++++++++++++++++++++++++
 2 files changed, 61 insertions(+)
 create mode 100644 scripts/server-dhcp/remove_dns_entry.sh

diff --git a/scripts/server-dhcp/.list_files.txt b/scripts/server-dhcp/.list_files.txt
index 182f944..bbdd17b 100644
--- a/scripts/server-dhcp/.list_files.txt
+++ b/scripts/server-dhcp/.list_files.txt
@@ -1,3 +1,4 @@
 add_dns_entry.sh
 get_first_free_ip.sh
+remove_dns_entry.sh
 setup_dhcp.sh
diff --git a/scripts/server-dhcp/remove_dns_entry.sh b/scripts/server-dhcp/remove_dns_entry.sh
new file mode 100644
index 0000000..cec8e85
--- /dev/null
+++ b/scripts/server-dhcp/remove_dns_entry.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# Importer les fonctions communes
+source "$(dirname "$0")/../common/common_utils.sh"
+
+# Vérifier si le script est exécuté en root
+check_root
+
+# Fichier de configuration de dnsmasq
+DNSMASQ_CONF="/etc/dnsmasq.d/custom_hosts"
+
+# Vérifier que dnsmasq est installé
+if ! command -v dnsmasq &> /dev/null; then
+    echo "dnsmasq n'est pas installé. Installez-le avec : sudo ./setup_dhcp.sh"
+    exit 1
+fi
+
+# Vérifier les arguments
+if [[ $# -ne 1 ]]; then
+    echo "Usage: $0 <IP | HOSTNAME>"
+    exit 1
+fi
+
+TARGET="$1"
+MODIFIED=0
+
+# Vérifier si le fichier existe
+if [[ ! -f "$DNSMASQ_CONF" ]]; then
+    echo "Le fichier $DNSMASQ_CONF n'existe pas. Aucun enregistrement à supprimer."
+    exit 1
+fi
+
+# Supprimer par IP
+if [[ "$TARGET" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+    # Vérifier si l'IP existe dans le fichier
+    if grep -q "/$TARGET$" "$DNSMASQ_CONF"; then
+        sed -i "/\/$TARGET$/d" "$DNSMASQ_CONF"
+        echo "Toutes les entrées associées à l'IP $TARGET ont été supprimées."
+        MODIFIED=1
+    else
+        echo "Aucune entrée trouvée pour l'IP $TARGET."
+    fi
+# Supprimer par Nom d'hôte
+else
+    if grep -qE "^address=/$TARGET/" "$DNSMASQ_CONF"; then
+        sed -i "/^address=\/$TARGET\//d" "$DNSMASQ_CONF"
+        echo "L'enregistrement $TARGET a été supprimé."
+        MODIFIED=1
+    else
+        echo "Aucune entrée trouvée pour le nom d'hôte $TARGET."
+    fi
+fi
+
+# Redémarrer dnsmasq seulement si une modification a été effectuée
+if [[ $MODIFIED -eq 1 ]]; then
+    systemctl restart dnsmasq
+    echo "Redémarrage de dnsmasq effectué."
+else
+    echo "Aucune modification nécessaire."
+fi