diff --git a/setup.sh b/setup.sh index 941aca2..0103b30 100644 --- a/setup.sh +++ b/setup.sh @@ -13,7 +13,7 @@ if [ -d "/data/data/com.termux/files/usr" ]; then elif [ -f /etc/os-release ]; then . /etc/os-release SPECIFIC_ID=$ID - # Falls ID_LIKE nicht gesetzt ist (z.B. direkt auf Fedora), nutzen wir die ID als Base + # Nutzt ID_LIKE, falls vorhanden, sonst Fallback auf ID BASE_ID=${ID_LIKE:-$ID} BIN_PATH="/usr/bin" else @@ -25,8 +25,8 @@ fi # --- 3. Pakete installieren --- echo "📦 Installiere Voraussetzungen für $SPECIFIC_ID..." -# Sudo Logik (Termux braucht kein Sudo) -if command -v sudo >/dev/null 2>&1 && [ "$SPECIFIC_ID" != "termux" ]; then +# Sudo Logik (Termux braucht kein Sudo, root auch nicht) +if command -v sudo >/dev/null 2>&1 && [ "$SPECIFIC_ID" != "termux" ] && [ "$(id -u)" -ne 0 ]; then S="sudo" else S="" @@ -41,21 +41,27 @@ case "$SPECIFIC_ID" in $S apt-get update && $S apt-get install -y zsh curl git neovim fastfetch eza ;; *alpine*) $S apk add zsh curl git neovim fastfetch eza shadow ncurses-terminfo-base ;; - *fedora*|*alma*|*rocky*|*rhel*) - # dnf wird für Fedora/RHEL-Derivate genutzt - $S dnf check-update -y # Gibt oft Exit-Code 100 bei Updates zurück, daher kein '&&' zwingend + *fedora*) + # Fedora hat eza und fastfetch direkt in den offiziellen Repos + $S dnf check-update -y + $S dnf install -y zsh curl git neovim fastfetch eza util-linux-user ;; + *alma*|*rocky*|*rhel*|*centos*) + # Enterprise Linux benötigt EPEL für fastfetch/eza + $S dnf install -y epel-release + $S dnf check-update -y $S dnf install -y zsh curl git neovim fastfetch eza util-linux-user ;; esac -# --- 4. Verzeichnisse erstellen (Termux-Safe) --- +# --- 4. Verzeichnisse erstellen --- mkdir -p "$HOME/.config/nvim" "$HOME/.config/fastfetch" # --- 5. .zshrc mit Fallback laden --- echo "📥 Lade ZSH-Konfiguration..." SUCCESS=0 -# Suchreihenfolge: spezifische ID -> Basis ID -> default -for TARGET in "$SPECIFIC_ID" "$BASE_ID" "default"; do +# Da ID_LIKE mehrere Werte enthalten kann (wie "rhel centos fedora"), +# loopen wir sauber durch alle Wörter in BASE_ID +for TARGET in "$SPECIFIC_ID" $BASE_ID "default"; do if [ -n "$TARGET" ] && [ "$SUCCESS" -eq 0 ]; then if curl -fsSL "${GITEA_RAW}/${TARGET}.zshrc" -o "$HOME/.zshrc"; then echo "✅ Erfolg mit ${TARGET}.zshrc"