pre-check in start.sh

This commit is contained in:
2025-09-26 12:45:06 +02:00
parent 387bca9225
commit 65c4633bdd

View File

@@ -1,17 +1,52 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# Root-Verzeichnis
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
SCRIPTS_DIR="$ROOT_DIR/scripts"
IMAGE_BUILDER="$SCRIPTS_DIR/image-builder.sh"
set -e
# Prüfen ob das Skript existiert
if [[ ! -f "$IMAGE_BUILDER" ]]; then
echo "[ERROR] $IMAGE_BUILDER nicht gefunden!"
exit 1
# Liste der benötigten Pakete
REQUIRED_CMDS=("jq" "whiptail" "dialog" "sudo")
# Funktion: prüfen ob Kommando existiert
check_command() {
command -v "$1" >/dev/null 2>&1
}
# Fehlende Pakete sammeln
MISSING_PKGS=()
for cmd in "${REQUIRED_CMDS[@]}"; do
if ! check_command "$cmd"; then
MISSING_PKGS+=("$cmd")
fi
done
# Wenn etwas fehlt, Installation vorschlagen
if [ ${#MISSING_PKGS[@]} -ne 0 ]; then
echo "❌ Folgende Pakete fehlen: ${MISSING_PKGS[*]}"
if whiptail --title "Fehlende Pakete" \
--yesno "Die folgenden Pakete fehlen:\n\n${MISSING_PKGS[*]}\n\nSollen diese jetzt installiert werden?" 15 60; then
# Paketmanager erkennen
if command -v apt-get >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y "${MISSING_PKGS[@]}"
elif command -v yum >/dev/null 2>&1; then
sudo yum install -y "${MISSING_PKGS[@]}"
elif command -v dnf >/dev/null 2>&1; then
sudo dnf install -y "${MISSING_PKGS[@]}"
elif command -v zypper >/dev/null 2>&1; then
sudo zypper install -y "${MISSING_PKGS[@]}"
else
echo "Kein unterstützter Paketmanager gefunden! Bitte installiere die Pakete manuell: ${MISSING_PKGS[*]}"
exit 1
fi
else
echo "Installation abgebrochen. Beende."
exit 1
fi
else
echo "✅ Alle Voraussetzungen sind erfüllt."
fi
# Script starten
"$IMAGE_BUILDER"
# Am Ende das eigentliche Script starten
echo "🚀 Starte image-builder.sh..."
exec ./scripts/image-builder.sh "$@"