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