Add setup.sh bootstrap script for fresh machines

Runs the whole README runbook in one go: relocates the repo off the USB
stick, installs CLT + Homebrew, brew bundle, symlinks, copied configs,
fish as default shell, and the .NET SDK, then prints the remaining
manual steps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MN5eka2MuNJP9uCMdTda75
This commit is contained in:
Trevi Awater
2026-09-07 19:11:26 +02:00
parent 2c89b8f169
commit 250baaaba1
2 changed files with 120 additions and 1 deletions

View File

@@ -10,7 +10,25 @@ Two kinds of files live here:
- **Copied** — files that can't be symlinked (`/etc/hosts`, Claude/Serena settings,
the brewfile). Refresh them from the machine with `./update.fish`.
## Fresh machine setup
## Fresh machine setup — the fast way
Get this repo onto the machine (USB stick copy or a clone) and run:
```bash
/bin/bash setup.sh
```
The script is idempotent and does steps 19 below automatically: it copies the
repo to `~/Repositories/personal/macos-configuration` (so it works straight off
a USB stick), installs Command Line Tools and Homebrew, runs the brew bundle,
creates all symlinks, restores the copied configs, sets fish as the default
shell, and installs the .NET SDK. At the end it prints the manual steps that
remain (1Password/SSH keys, iTerm2 profile import, `gh auth login` + repo
cloning, WireGuard, app sign-ins).
The sections below document what the script does, for reference or manual runs.
## Fresh machine setup — step by step
### 1. Install Command Line Tools and clone this repo