Skip to content

Commit 1f1e018

Browse files
committed
Fix | Menu
1 parent 0f7bd74 commit 1f1e018

File tree

1 file changed

+33
-81
lines changed

1 file changed

+33
-81
lines changed

menu.sh

Lines changed: 33 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
#!/usr/bin/env bash
22
# ==============================================================================
3-
# menu.sh â Lanceur interactif des scripts OverStyleFR
3+
# menu.sh Lanceur interactif des scripts OverStyleFR
44
#
55
# USAGE :
66
# sudo ./menu.sh
7-
#
8-
# CARACTÃRISTIQUES :
9-
# - Menu en boucle (1..9)
10-
# - Vérifie root, relance via sudo si nécessaire
11-
# - Couleurs avec fallback si tput indisponible
12-
# - Télécharge chaque script dans /tmp avec mktemp, exécute, affiche le statut
13-
# - Nettoyage auto des fichiers temporaires
147
# ==============================================================================
158

16-
# Pas de "set -e" pour ne pas quitter le menu sur une simple erreur de sous-commande
179
set -uo pipefail
1810

1911
# ------------------------------- Couleurs -------------------------------------
@@ -25,9 +17,9 @@ else
2517
GREEN=""; RED=""; BLUE=""; VIOLET=""; YELLOW=""; BOLD=""; RESET=""
2618
fi
2719

28-
# ------------------------------ Vérif root ------------------------------------
20+
# ------------------------------ Vérif root ------------------------------------
2921
if [[ ${EUID:-$UID} -ne 0 ]]; then
30-
echo -e "${RED}${BOLD}Ce script doit être exécuté en tant que root.${RESET}"
22+
echo -e "${RED}${BOLD}Ce script doit être exécuté en tant que root.${RESET}"
3123
exec sudo -E bash "$0" "$@"
3224
fi
3325

@@ -48,43 +40,39 @@ download_to_tmp() {
4840
# $1=url $2=prefix (nom lisible)
4941
local url="$1" prefix="${2:-script}"
5042
local tmp
51-
tmp="$(mktemp -p /tmp "${prefix}.XXXXXX")" || { echo -e "${RED}${BOLD}mktemp a échoué${RESET}"; return 98; }
52-
53-
# Nettoyage automatique à la sortie de la fonction:
54-
trap 'rm -f "$tmp" 2>/dev/null || true' RETURN
43+
tmp="$(mktemp -p /tmp "${prefix}.XXXXXX")" || { echo -e "${RED}${BOLD}mktemp a échoué${RESET}"; return 98; }
5544

5645
if command -v curl >/dev/null 2>&1; then
5746
if ! curl -fsSL --retry 3 --retry-delay 1 "$url" -o "$tmp"; then
58-
echo -e "${RED}${BOLD}Téléchargement échoué (curl)${RESET}"; return 90
47+
echo -e "${RED}${BOLD}Téléchargement échoué (curl)${RESET}"; rm -f "$tmp"; return 90
5948
fi
6049
elif command -v wget >/dev/null 2>&1; then
6150
if ! wget -q "$url" -O "$tmp"; then
62-
echo -e "${RED}${BOLD}Téléchargement échoué (wget)${RESET}"; return 90
51+
echo -e "${RED}${BOLD}Téléchargement échoué (wget)${RESET}"; rm -f "$tmp"; return 90
6352
fi
6453
else
65-
echo -e "${RED}${BOLD}Ni curl ni wget disponible pour télécharger${RESET}"; return 91
54+
echo -e "${RED}${BOLD}Ni curl ni wget disponible pour télécharger${RESET}"; rm -f "$tmp"; return 91
6655
fi
6756

6857
chmod +x "$tmp"
69-
echo "$tmp" # retourne le chemin
58+
printf "%s" "$tmp" # retourne le chemin
7059
}
7160

7261
run_remote() {
73-
# $1=url $2=nom_affiché
74-
local url="$1" label="${2:-script}"
75-
echo -e "${YELLOW}${BOLD}Téléchargement de ${label}â¦${RESET}"
76-
local tmp rc
62+
# $1=url $2=nom_affiché
63+
local url="$1" label="${2:-script}" tmp rc
64+
echo -e "${YELLOW}${BOLD}Téléchargement de ${label}${RESET}"
7765
if ! tmp="$(download_to_tmp "$url" "$label")"; then
78-
echo -e "${RED}${BOLD}Ãchec de préparation pour ${label}${RESET}"
66+
echo -e "${RED}${BOLD}Échec de préparation pour ${label}${RESET}"
7967
return 90
8068
fi
81-
echo -e "${YELLOW}${BOLD}Exécution de ${label}â¦${RESET}"
69+
echo -e "${YELLOW}${BOLD}Exécution de ${label}${RESET}"
8270
bash "$tmp"; rc=$?
71+
rm -f "$tmp" 2>/dev/null || true
8372
if [[ $rc -eq 0 ]]; then
84-
echo -e "${GREEN}${BOLD}â ${label} terminé avec succès${RESET}"
73+
echo -e "${GREEN}${BOLD} ${label} terminé avec succès${RESET}"
8574
else
86-
echo -e "${RED}${BOLD}â ${label} a échoué (rc=${rc})${RESET}"
87-
# indice utile pour new.sh
75+
echo -e "${RED}${BOLD}${label} a échoué (rc=${rc})${RESET}"
8876
ls -1 /var/log/new-basics-*.log 2>/dev/null | tail -n 1 | sed "s/^/Dernier log: /"
8977
fi
9078
return $rc
@@ -104,19 +92,19 @@ draw_menu() {
10492
echo " +-------------+"
10593
echo " | ${GREEN}${BOLD}Script${RESET}${BOLD} :${RESET} |"
10694
echo " +-------------+-------------+----------------+"
107-
echo " | 3. Exécuter 'new.sh' |"
95+
echo " | 3. Exécuter 'new.sh' |"
10896
echo " | |"
109-
echo " | 4. Exécuter 'speedtest.sh' |"
97+
echo " | 4. Exécuter 'speedtest.sh' |"
11098
echo " | |"
111-
echo " | 5. Exécuter 'fastfetch.sh' |"
99+
echo " | 5. Exécuter 'fastfetch.sh' |"
112100
echo " | |"
113-
echo " | 6. Exécuter 'pterodactyl-panel-reinstaller'|"
101+
echo " | 6. Exécuter 'pterodactyl-panel-reinstaller'|"
114102
echo " +--------------------------------------------+"
115-
echo " | 7. ${BLUE}${BOLD}Exécuter le Pterodactyl Menu${RESET} |"
116-
echo " | â ${YELLOW}${BOLD}OverStyleFR/Pterodactyl-Installer-Menu${RESET} |"
103+
echo " | 7. ${BLUE}${BOLD}Exécuter le Pterodactyl Menu${RESET} |"
104+
echo " | ${YELLOW}${BOLD}OverStyleFR/Pterodactyl-Installer-Menu${RESET} |"
117105
echo " +--------------------------------------------+"
118106
echo " | 8. ${BOLD}${VIOLET}M${GREEN}e${YELLOW}n${BLUE}u${RESET}${BOLD} SSH ${RESET} |"
119-
echo " | â ${VIOLET}${BOLD}OverStyleFR/AutoScriptBash${RESET} |"
107+
echo " | ${VIOLET}${BOLD}OverStyleFR/AutoScriptBash${RESET} |"
120108
echo " +-------------+------------+-----------------+"
121109
echo " | ${RED}${BOLD}9. Quitter${RESET} |"
122110
echo " +------------+"
@@ -128,51 +116,15 @@ while true; do
128116
draw_menu
129117
read -rp "Choisissez une option (1-9) : " choix
130118
case "${choix:-}" in
131-
1)
132-
echo "Installation de Docker."
133-
run_remote "$DOCKER_URL" "dockerinstall.sh"
134-
pause
135-
;;
136-
2)
137-
echo "Installation de Yarn."
138-
run_remote "$YARN_URL" "yarninstall.sh"
139-
pause
140-
;;
141-
3)
142-
echo "Exécution du script 'new.sh'."
143-
run_remote "$NEW_URL" "new.sh"
144-
pause
145-
;;
146-
4)
147-
echo "Exécution du script 'speedtest.sh'."
148-
run_remote "$SPEED_URL" "speedtest.sh"
149-
pause
150-
;;
151-
5)
152-
echo "Exécution du script 'fastfetch-install.sh'."
153-
run_remote "$FASTFETCH_URL" "fastfetch-install.sh"
154-
pause
155-
;;
156-
6)
157-
echo "Exécution du script 'pterodactyl-panel-reinstaller'."
158-
run_remote "$PANEL_REINSTALL_URL" "pterodactylpanelreinstall.sh"
159-
pause
160-
;;
161-
7)
162-
echo -e "${BLUE}${BOLD}Exécuter le Pterodactyl Menu${RESET}"
163-
run_remote "$PTERO_MENU_URL" "PterodactylMenu.sh"
164-
pause
165-
;;
166-
8)
167-
echo -e "${BOLD}${VIOLET}Menu SSH${RESET}"
168-
run_remote "$SSH_MENU_URL" "menu_id.sh"
169-
pause
170-
;;
171-
9)
172-
echo "Au revoir !"; exit 0 ;;
173-
*)
174-
echo -e "${RED}Choix non valide. Veuillez entrer un numéro entre 1 et 9.${RESET}"
175-
sleep 1
176-
;;
119+
1) echo "Installation de Docker." ; run_remote "$DOCKER_URL" "dockerinstall.sh" ; pause ;;
120+
2) echo "Installation de Yarn." ; run_remote "$YARN_URL" "yarninstall.sh" ; pause ;;
121+
3) echo "Exécution du script 'new.sh'." ; run_remote "$NEW_URL" "new.sh" ; pause ;;
122+
4) echo "Exécution du script 'speedtest.sh'." ; run_remote "$SPEED_URL" "speedtest.sh" ; pause ;;
123+
5) echo "Exécution du script 'fastfetch-install.sh'." ; run_remote "$FASTFETCH_URL" "fastfetch-install.sh" ; pause ;;
124+
6) echo "Exécution du script 'pterodactyl-panel-reinstaller'."; run_remote "$PANEL_REINSTALL_URL" "pterodactylpanelreinstall.sh" ; pause ;;
125+
7) echo -e "${BLUE}${BOLD}Exécuter le Pterodactyl Menu${RESET}" ; run_remote "$PTERO_MENU_URL" "PterodactylMenu.sh" ; pause ;;
126+
8) echo -e "${BOLD}${VIOLET}Menu SSH${RESET}" ; run_remote "$SSH_MENU_URL" "menu_id.sh" ; pause ;;
127+
9) echo "Au revoir !" ; exit 0 ;;
128+
*) echo -e "${RED}Choix non valide. Veuillez entrer un numéro entre 1 et 9.${RESET}" ; sleep 1 ;;
177129
esac
178130
done

0 commit comments

Comments
 (0)