dotfiles/install/lib/extras.sh
Claude 096c3c8afa
feat(install): switch to Homebrew for the CLI toolchain
Ubuntu 24.04's apt versions of fzf/fd/bat/eza/zoxide/ripgrep/tmux/nvim/
lazygit/starship are frozen at April 2024 — and the previous GitHub-
release downloads went stale the moment you stopped re-running the
installer. Homebrew on Linux fixes both: always-latest releases and a
single 'brew upgrade' to update the whole CLI stack.

Two-tier install:
  apt   - zsh + base plumbing + WezTerm (vendor repo) + Brave Beta
          (vendor repo). Vendor repos auto-update via 'apt upgrade'.
  brew  - fzf fd bat eza zoxide ripgrep tmux neovim lazygit starship
          gh zsh-syntax-highlighting zsh-autosuggestions
  nvm   - official installer (pinned NVM_VERSION)
  tpm   - tmux plugin manager clone

New files:
  install/Brewfile - bundle for 'brew bundle'
  install/lib/brew.sh - Homebrew bootstrap + brew bundle
  install/lib/extras.sh - nvm + tpm
  install/install.sh - rewired entry point with --packages-only,
    --dotfiles-only, --help
  install/README.md - new docs for the two-tier strategy

.zshrc:
  - Source brew shellenv first when present, so brew bins win on PATH
  - 'update' alias now: brew upgrade && sudo apt update && sudo apt upgrade
    (previously apt-only; before that pacman-only)

Drops install/lib/packages.sh entries that the now-Brewfile-managed tools
duplicated, and removes the GitHub-release tarball install path.
2026-06-10 16:54:47 +00:00

30 lines
789 B
Bash

#!/bin/bash
# Per-user helpers not managed by brew: nvm (official installer) + tpm.
NVM_VERSION="${NVM_VERSION:-v0.40.1}"
install_nvm() {
if [[ -s $HOME/.nvm/nvm.sh ]]; then
info "nvm already installed"
return
fi
info "Installing nvm ($NVM_VERSION)..."
PROFILE=/dev/null bash -c \
"curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh | bash" ||
warn "nvm install failed (install manually if you need Node)"
}
install_tpm() {
if [[ -d $HOME/.tmux/plugins/tpm ]]; then
info "tpm already installed"
return
fi
info "Installing tmux plugin manager..."
git clone --depth 1 https://github.com/tmux-plugins/tpm \
"$HOME/.tmux/plugins/tpm" || warn "tpm clone failed"
}
install_all_extras() {
install_nvm
install_tpm
}