pre-check in start.sh
This commit is contained in:
59
start.sh
59
start.sh
@@ -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 "$@"
|
||||
|
||||
Reference in New Issue
Block a user