#!/bin/sh # --- 1. Konfiguration --- GITEA_RAW="https://git.ungruhe.info/Tim/dotfiles/raw/branch/main" echo "🔍 Scanne System-Umgebung..." # --- 2. Erweiterte System-Erkennung (Inkl. Termux) --- if [ -d "/data/data/com.termux/files/usr" ]; then SPECIFIC_ID="termux" BASE_ID="android" BIN_PATH="/data/data/com.termux/files/usr/bin" elif [ -f /etc/os-release ]; then . /etc/os-release SPECIFIC_ID=$ID # Nutzt ID_LIKE, falls vorhanden, sonst Fallback auf ID BASE_ID=${ID_LIKE:-$ID} BIN_PATH="/usr/bin" else SPECIFIC_ID="unknown" BASE_ID="unknown" BIN_PATH="/usr/bin" fi # --- 3. Pakete installieren --- echo "📦 Installiere Voraussetzungen für $SPECIFIC_ID..." # 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="" fi case "$SPECIFIC_ID" in termux) pkg update && pkg install -y zsh curl git neovim fastfetch eza ncurses-utils ;; *arch*|*cachyos*) $S pacman -Syu --needed --noconfirm zsh curl git neovim fastfetch eza shadow ;; *debian*|*ubuntu*|*trixie*) $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*) # 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 --- mkdir -p "$HOME/.config/nvim" "$HOME/.config/fastfetch" # --- 5. .zshrc mit Fallback laden --- echo "📥 Lade ZSH-Konfiguration..." SUCCESS=0 # 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" SUCCESS=1 fi fi done # --- 6. Restliche Configs --- curl -fsSL "${GITEA_RAW}/.config/fastfetch/fastfetch.jsonc" -o "$HOME/.config/fastfetch/fastfetch.jsonc" curl -fsSL "${GITEA_RAW}/.config/nvim/init.lua" -o "$HOME/.config/nvim/init.lua" # --- 7. Shell-Wechsel --- if [ "$SPECIFIC_ID" = "termux" ]; then chsh -s zsh >/dev/null 2>&1 else if [ "$SHELL" != "$(command -v zsh)" ]; then $S chsh -s "$(command -v zsh)" "$(whoami)" fi fi echo "🚀 Setup abgeschlossen! Starte ZSH neu..."