diff --git a/admin.sh b/admin.sh index 447aaaa..c69e9ae 100755 --- a/admin.sh +++ b/admin.sh @@ -1,7 +1,9 @@ #!/bin/bash # # Script helper pentru administrare UnderChat IRCd +# Versiunea: 1.0.3 - Corectare bug meniu interactiv # Limba: Română +# Bug-uri corectate: Opțiunile 1 și 9 nu erau recunoscute din cauza citire dublă input # # Culori @@ -16,6 +18,7 @@ IRCD_BIN="$PREFIX/bin/ircd" UMKPASSWD_BIN="$PREFIX/bin/umkpasswd" CONFIG_FILE="${PREFIX}/etc/ircd.conf" LOG_FILE="${PREFIX}/log/ircd.log" +choice="" # Functie pentru remediere automata probleme configurare fix_config_issues() { @@ -98,9 +101,25 @@ show_menu() { echo " 7) Generare parola operator" echo " 8) Test sintaxă configurare" echo " 9) Remediere probleme configurare" - echo " 10) Iesire" + echo " 10) Ieșire" echo "" - read -p "Alege opțiune [1-10]: " choice + + while true; do + read -p "Alege opțiune [1-10]: " choice + + # Verifică dacă input-ul este gol + if [ -z "$choice" ]; then + echo -e "${GALBEN}Te rog introdu o opțiune validă!${NC}" + continue + fi + + # Verifică dacă este un număr între 1 și 10 + if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -le 10 ]; then + break + fi + + echo -e "${GALBEN}Te rog introdu un număr între 1 și 10!${NC}" + done } # Funcție pentru creare config standard @@ -750,7 +769,6 @@ test_config() { main() { while true; do show_menu - read choice case $choice in 1) @@ -784,12 +802,6 @@ main() { echo -e "${VERDE}La revedere!${NC}" exit 0 ;; - *) - echo -e "${ROSU}Opțiune necunoscută!${NC}" - echo "" - echo -n "Apasa Enter pentru a continua..." - read - ;; esac done }