dotfiles: add beets, sync-music script, firstmate, ngrok, openssh, gh/tmux/treehouse/opencode/pi brews
This commit is contained in:
+39
@@ -1,5 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
# Rebuild nix-darwin + home-manager. Rotates stale home-manager *.backup files
|
||||
# so a second switch never fails with "would be clobbered".
|
||||
set -euo pipefail
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
||||
ln -sfn "$DIR" ~/.dotfiles
|
||||
|
||||
stamp="$(date +%Y%m%d-%H%M%S)"
|
||||
# Paths home-manager manages via home.file (regular files become out-of-store symlinks).
|
||||
managed=(
|
||||
"$HOME/.grok/config.toml"
|
||||
"$HOME/.grok/AGENTS.md"
|
||||
"$HOME/.claude/settings.json"
|
||||
"$HOME/.claude/CLAUDE.md"
|
||||
"$HOME/.codex/AGENTS.md"
|
||||
"$HOME/.config/opencode/AGENTS.md"
|
||||
"$HOME/.pi/agent/settings.json"
|
||||
"$HOME/.pi/agent/models.json"
|
||||
"$HOME/.pi/agent/AGENTS.md"
|
||||
"$HOME/.pi/agent/extensions/terminal-status-title.js"
|
||||
)
|
||||
for path in "${managed[@]}"; do
|
||||
bak="${path}.backup"
|
||||
if [ -e "$bak" ] || [ -L "$bak" ]; then
|
||||
mv "$bak" "${bak}.${stamp}"
|
||||
echo "rotated stale backup: ${bak} -> ${bak}.${stamp}"
|
||||
fi
|
||||
done
|
||||
# Directory targets use the same backup suffix on collision.
|
||||
for path in \
|
||||
"$HOME/.config/wezterm" \
|
||||
"$HOME/.config/nvim" \
|
||||
"$HOME/.config/herdr" \
|
||||
"$HOME/.pi/agent/themes" \
|
||||
"$HOME/.pi/agent/extensions/calm"
|
||||
do
|
||||
bak="${path}.backup"
|
||||
if [ -e "$bak" ] || [ -L "$bak" ]; then
|
||||
mv "$bak" "${bak}.${stamp}"
|
||||
echo "rotated stale backup: ${bak} -> ${bak}.${stamp}"
|
||||
fi
|
||||
done
|
||||
|
||||
exec sudo darwin-rebuild switch --flake ~/.dotfiles#lt-mbp
|
||||
|
||||
Reference in New Issue
Block a user