86 lines
2.8 KiB
Bash
86 lines
2.8 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
|
|
# 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..." |