#!/bin/bash # ================================= # POST-INSTALL TOOLBOX # ================================= # Farben RED="\033[31m" GREEN="\033[32m" YELLOW="\033[33m" BLUE="\033[34m" CYAN="\033[36m" BOLD="\033[1m" RESET="\033[0m" # Einrückung vom linken Rand INDENT=" " # 6 Leerzeichen # Prüfen, ob Root if [ "$EUID" -ne 0 ]; then echo -e "${RED}Bitte als Root ausführen (sudo)${RESET}" 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["Set CPU Scaling Governor"]="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/scaling-governor.sh" SCRIPTS["Intel e1000e Offload Fix"]="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/nic-offloading-fix.sh" SCRIPTS["Set PVE Update Repos"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/set_pve_repos.sh" SCRIPTS["Set PBS Update Repos"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/set_pbs_repos.sh" # Reihenfolge festlegen ORDER=( "Host & SSD Seriennummern" "Set PVE-Mail" "Set PBS-Mail" "Set CPU Scaling Governor" "Intel e1000e Offload Fix" "Set PVE Update Repos" "Set PBS Update Repos" ) # Funktion für Header print_header() { clear echo -e "${CYAN}${BOLD}${INDENT}====================================${RESET}" echo -e "${CYAN}${BOLD}${INDENT} POST-INSTALL TOOLBOX ${RESET}" echo -e "${CYAN}${BOLD}${INDENT}====================================${RESET}" } # Menü starten while true; do print_header echo -e "\n${YELLOW}${INDENT}Wähle ein Script zum Ausführen:${RESET}\n" # Skripte nummerieren in der festen Reihenfolge i=1 declare -A INDEX_MAP for key in "${ORDER[@]}"; do echo -e "${INDENT}${RED}$i)${RESET} $key" INDEX_MAP[$i]="$key" ((i++)) done echo -e "${INDENT}${RED}0) Beenden${RESET}\n" echo -ne "${INDENT}Auswahl: " read -r choice # Beenden if [ "$choice" == "0" ]; then echo -e "${GREEN}${INDENT}Bye! 👋${RESET}" 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 -e "\n${CYAN}${INDENT}------------------------------------${RESET}" echo -e "${GREEN}${INDENT}Lade Script: ${BOLD}$key${RESET}" echo -e "${YELLOW}${INDENT}Von: $url${RESET}" echo -e "${CYAN}${INDENT}------------------------------------${RESET}\n" # Temporäre Datei tmpfile=$(mktemp) curl -sSL "$url" -o "$tmpfile" if [ ! -s "$tmpfile" ]; then echo -e "${RED}${INDENT}Fehler beim Download!${RESET}" rm -f "$tmpfile" read -r -p "${INDENT}Enter drücken für Menü..." continue fi # Script ausführen bash "$tmpfile" rm -f "$tmpfile" echo -e "\n${CYAN}${INDENT}------------------------------------${RESET}" echo -e "${GREEN}${INDENT}Fertig!${RESET} Drücke Enter für Menü..." read -r else echo -e "${RED}${INDENT}Ungültige Auswahl! Bitte erneut versuchen.${RESET}" sleep 1 fi done