Files
dotfiles/setup.sh
T
2026-05-30 15:54:09 +02:00

80 lines
2.6 KiB
Bash

#!/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
# Falls ID_LIKE nicht gesetzt ist (z.B. direkt auf Fedora), nutzen wir die ID als Base
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)
if command -v sudo >/dev/null 2>&1 && [ "$SPECIFIC_ID" != "termux" ]; 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*|*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
$S dnf install -y zsh curl git neovim fastfetch eza util-linux-user ;;
esac
# --- 4. Verzeichnisse erstellen (Termux-Safe) ---
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
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..."