53 lines
1.6 KiB
Bash
Executable File
53 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
# 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
|
|
|
|
# Am Ende das eigentliche Script starten
|
|
echo "🚀 Starte image-builder.sh..."
|
|
exec ./scripts/image-builder.sh "$@"
|