Refresh configs, add update.fish, rewrite README as setup runbook

- Re-dump brewfile (adds postgresql@16, tree; drops typeit4me)
- Refresh claude-settings.json, hosts, and serena_config.yml from machine
- Add update.fish to actualise the copied configs in one go
- Rewrite README as a complete ordered fresh-machine setup guide

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:08:42 +02:00
parent aecbff48a8
commit 2c89b8f169
8 changed files with 561 additions and 23 deletions

58
update.fish Executable file
View File

@@ -0,0 +1,58 @@
#!/usr/bin/env fish
# Actualise the tracked config files from the current machine state.
#
# Most files in this repo are symlinked into place (see README), so they are
# always current. This script refreshes the ones that are plain copies and
# therefore drift out of date:
#
# * brewfile <- `brew bundle dump`
# * claude-settings.json <- ~/.claude/settings.json
# * hosts <- /etc/hosts
# * serena_config.yml <- ~/.serena/serena_config.yml
#
# Safe to re-run. Review the diff afterwards and commit what you want to keep.
set -l repo (dirname (status --current-filename))
cd $repo; or exit 1
echo "Actualising config in $repo"
echo
# --- Homebrew packages, casks and VS Code extensions -----------------------
if type -q brew
echo "==> Dumping Homebrew bundle -> brewfile"
brew bundle dump --file=brewfile --force
else
echo "==> Skipping brewfile (brew not found)"
end
# --- Claude Code settings --------------------------------------------------
set -l claude_settings "$HOME/.claude/settings.json"
if test -f $claude_settings
echo "==> Copying $claude_settings -> claude-settings.json"
cp $claude_settings claude-settings.json
else
echo "==> Skipping claude-settings.json ($claude_settings not found)"
end
# --- Serena config ---------------------------------------------------------
set -l serena_config "$HOME/.serena/serena_config.yml"
if test -f $serena_config
echo "==> Copying $serena_config -> serena_config.yml"
cp $serena_config serena_config.yml
else
echo "==> Skipping serena_config.yml ($serena_config not found)"
end
# --- /etc/hosts ------------------------------------------------------------
if test -f /etc/hosts
echo "==> Copying /etc/hosts -> hosts"
cp /etc/hosts hosts
else
echo "==> Skipping hosts (/etc/hosts not found)"
end
echo
echo "Done. Review changes:"
echo " git -C $repo diff --stat"