73 lines
2.1 KiB
Bash
73 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Prüfen, ob Root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Bitte als Root ausführen (sudo)"
|
|
exit 1
|
|
fi
|
|
|
|
# Skripte (Name -> URL)
|
|
declare -A SCRIPTS
|
|
SCRIPTS["Host & SSD Seriennummern"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/get_sn.sh"
|
|
SCRIPTS["Set PVE-Mail"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email-pve.sh"
|
|
SCRIPTS["Set PBS-Mail"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email-pbs.sh"
|
|
SCRIPTS["Externe Analyse"]="https://example.com/remote_script.sh"
|
|
|
|
# Reihenfolge festlegen
|
|
ORDER=("Host & SSD Seriennummern" "Set PVE-Mail" "Set PBS-Mail" "Externe Analyse")
|
|
|
|
# Menü starten
|
|
while true; do
|
|
echo "===================================="
|
|
echo " POST-INSTALL INTERNET TOOLBOX"
|
|
echo "===================================="
|
|
echo "Wähle ein Script zum Ausführen:"
|
|
|
|
# Skripte nummerieren in der festen Reihenfolge
|
|
i=1
|
|
declare -A INDEX_MAP
|
|
for key in "${ORDER[@]}"; do
|
|
echo "$i) $key"
|
|
INDEX_MAP[$i]="$key"
|
|
((i++))
|
|
done
|
|
echo "0) Beenden"
|
|
echo -n "Auswahl: "
|
|
read -r choice
|
|
|
|
# Beenden
|
|
if [ "$choice" == "0" ]; then
|
|
echo "Bye! 👋"
|
|
exit 0
|
|
fi
|
|
|
|
# Prüfen ob gültig
|
|
if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -lt "$i" ]; then
|
|
key="${INDEX_MAP[$choice]}"
|
|
url="${SCRIPTS[$key]}"
|
|
echo "------------------------------------"
|
|
echo "Lade Script: $key"
|
|
echo "Von: $url"
|
|
echo "------------------------------------"
|
|
|
|
tmpfile=$(mktemp)
|
|
curl -sSL "$url" -o "$tmpfile"
|
|
|
|
if [ ! -s "$tmpfile" ]; then
|
|
echo "Fehler beim Download!"
|
|
rm -f "$tmpfile"
|
|
read -r -p "Enter drücken für Menü..."
|
|
continue
|
|
fi
|
|
|
|
bash "$tmpfile"
|
|
rm -f "$tmpfile"
|
|
|
|
echo "------------------------------------"
|
|
echo "Fertig! Drücke Enter für Menü..."
|
|
read -r
|
|
else
|
|
echo "Ungültige Auswahl! Bitte erneut versuchen."
|
|
fi
|
|
done
|