macbook-setup/setup.sh
rene 1f530674be Split setup.sh in chroot-sicheren und Desktop-Teil
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>
2026-03-07 16:41:22 +01:00

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"