setup.sh rief bisher alles in einem Skript auf, was in der Autoinstall-ISO (curtin in-target/chroot) teilweise fehlschlaegt: xfconf-query, npm, oh-my-zsh, PrusaSlicer brauchen eine laufende Desktop-Session. Neuer Aufbau: - setup-base.sh: Pakete, Configs, Locale, Services (laeuft in chroot) - setup-desktop.sh: oh-my-zsh, Claude Code, PrusaSlicer, Dotfiles, XFCE-Einstellungen (laeuft beim ersten Desktop-Login) - setup.sh: Wrapper fuer Option A (manuelles curl | bash nach Install) user-data ruft jetzt setup-base.sh in late-commands auf und richtet einen XFCE-Autostart fuer setup-desktop.sh beim ersten Login ein. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
2.8 KiB
Bash
52 lines
2.8 KiB
Bash
#!/bin/bash
|
|
# macbook-setup/setup.sh
|
|
# Vollautomatisches Post-Install-Skript für Linux auf MacBook Pro
|
|
# Ruft setup-base.sh (als root) und setup-desktop.sh (als User) auf
|
|
#
|
|
# Verwendung: curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup.sh | bash
|
|
# Oder: bash setup.sh [13|16] (Modell optional, wird sonst abgefragt)
|
|
|
|
set -e
|
|
SETUP_RAW="https://git.motocamp.de/rene/macbook-setup/raw/branch/main"
|
|
|
|
# ── Farben ──────────────────────────────────────────────────────────────
|
|
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
|
|
ok() { echo -e "${GREEN}✓ $*${NC}"; }
|
|
err() { echo -e "${RED}✗ $*${NC}"; exit 1; }
|
|
|
|
# ── Root-Check ───────────────────────────────────────────────────────────
|
|
[[ $EUID -eq 0 ]] && err "Nicht als root ausführen. sudo wird intern verwendet."
|
|
|
|
# ── Modell ermitteln ─────────────────────────────────────────────────────
|
|
if [[ "$1" == "13" || "$1" == "16" ]]; then
|
|
MODEL="$1"
|
|
else
|
|
echo ""
|
|
echo "Welches MacBook Pro?"
|
|
echo " 13 = MBP 13\" Late 2013"
|
|
echo " 16 = MBP 16\" Mid 2014 (Intel + Nvidia)"
|
|
read -rp "Modell [13/16]: " MODEL
|
|
[[ "$MODEL" != "13" && "$MODEL" != "16" ]] && err "Ungültiges Modell: $MODEL"
|
|
fi
|
|
|
|
echo ""
|
|
echo "════════════════════════════════════════════"
|
|
echo " macbook-setup für MBP $MODEL\" (komplett)"
|
|
echo "════════════════════════════════════════════"
|
|
|
|
# ── Phase 1: System-Setup (als root) ────────────────────────────────────
|
|
echo -e "\n>>> Phase 1: setup-base.sh (System)"
|
|
curl -fsSL "$SETUP_RAW/setup-base.sh" | sudo bash -s -- "$MODEL"
|
|
ok "Phase 1 abgeschlossen"
|
|
|
|
# ── Phase 2: Desktop-Setup (als User) ───────────────────────────────────
|
|
echo -e "\n>>> Phase 2: setup-desktop.sh (Desktop)"
|
|
curl -fsSL "$SETUP_RAW/setup-desktop.sh" | bash
|
|
ok "Phase 2 abgeschlossen"
|
|
|
|
echo ""
|
|
echo "════════════════════════════════════════════"
|
|
echo -e " ${GREEN}Komplett-Setup abgeschlossen!${NC}"
|
|
echo "════════════════════════════════════════════"
|
|
echo ""
|
|
echo "Neustart empfohlen: sudo reboot"
|