From 8c8acf6d96b940848ed84997cd933f998baaeb6f Mon Sep 17 00:00:00 2001
From: Elian Loraux <elian.loraux@tetras-libre.fr>
Date: Mon, 10 Feb 2025 13:12:15 +0100
Subject: [PATCH] remove first comma

---
 ban.sh | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/ban.sh b/ban.sh
index 7aaadd5..997bfcf 100644
--- a/ban.sh
+++ b/ban.sh
@@ -1,17 +1,17 @@
 #!/bin/bash
 
-# Fonction pour valider une adresse IPv4
+# Check valid IP
 validate_ipv4() {
     local ip="$1"
     local regex='^([0-9]{1,3}\.){3}[0-9]{1,3}$'
 
-    # Vérifier le format général avec une regex
+    # Check Format
     if [[ ! $ip =~ $regex ]]; then
         echo "Invalid IPv4 address: inccorect format"
         return 1
     fi
 
-    # Vérifier que chaque octet est entre 0 et 255
+    # Chack bit between 0 and 255
     IFS='.' read -r -a octets <<< "$ip"
     for octet in "${octets[@]}"; do
         if ((octet < 0 || octet > 255)); then
@@ -23,18 +23,31 @@ validate_ipv4() {
     return 0
 }
 
-# Vérifier si un paramètre est fourni
+# Check if parms
 if [[ $# -ne 1 ]]; then
     echo "Usage: $0 <ipv4 address>"
     exit 1
 fi
 
-# Vérifier l'adresse IPv4 fournie
+# Chack if is IP
 validate_ipv4 "$1"
 if [[ $? -eq 0 ]]; then
     domain=$(docker ps -qa | xargs docker inspect | awk '/traefik.http.routers.*.rule/{print $2}' | sed -e 's/^"Host(`//' -e 's/`)",*//' -e 's/`,`/\n/g' | grep -v 'ClientIP' | sort -u | sed "s/^/\`/" | sed "s/$/\`/" | paste -sd ",")
     sed -i "s/HOSTS=.*/HOSTS=$domain/" .env
-    sed -i "s/^BAN_IPS=\(.*\)/BAN_IPS=\1,\`$1\`/" .env
+
+    IP="$1"
+
+    # if BAN_IPS is empt or note
+    if grep -q "^BAN_IPS=" .env && grep -q "^BAN_IPS=$" .env; then
+        # if BAN_IPS empty, put ip
+        sed -i "s/^BAN_IPS=$/BAN_IPS=\`$IP\`/" .env
+    else
+        # else, add comma between ip
+        sed -i -E "/^BAN_IPS=/ s/$/,\`$IP\`/" .env
+    fi
+
+    # sed -i "s/^BAN_IPS=\(.*\)/BAN_IPS=\1,\`$1\`/" .env
+    # sed "s/^BAN_IPS=\(.*\)/BAN_IPS=\1,\`79.85.55.114\`/" .env
     docker-compose up -d
 else
     exit 1
-- 
GitLab