pre-check in start.sh
This commit is contained in:
57
start.sh
57
start.sh
@@ -1,17 +1,52 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
|
||||||
IFS=$'\n\t'
|
|
||||||
|
|
||||||
# Root-Verzeichnis
|
set -e
|
||||||
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
SCRIPTS_DIR="$ROOT_DIR/scripts"
|
|
||||||
IMAGE_BUILDER="$SCRIPTS_DIR/image-builder.sh"
|
|
||||||
|
|
||||||
# Prüfen ob das Skript existiert
|
# Liste der benötigten Pakete
|
||||||
if [[ ! -f "$IMAGE_BUILDER" ]]; then
|
REQUIRED_CMDS=("jq" "whiptail" "dialog" "sudo")
|
||||||
echo "[ERROR] $IMAGE_BUILDER nicht gefunden!"
|
|
||||||
|
# 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
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Installation abgebrochen. Beende."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "✅ Alle Voraussetzungen sind erfüllt."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Script starten
|
# Am Ende das eigentliche Script starten
|
||||||
"$IMAGE_BUILDER"
|
echo "🚀 Starte image-builder.sh..."
|
||||||
|
exec ./scripts/image-builder.sh "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user