Piping bootstrap.sh into sh left $0 as a non-path, so SCRIPT_DIR pointed at the caller's cwd and the module scripts couldn't be found (exit 127). When no checkout is present, clone/update the repo into ~/.dotfiles and re-exec from there. Add a Quick start section to the README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
dotfiles
Configures fresh VMs (RHEL-family or Debian-family) with a consistent
environment. Run ./bootstrap.sh (or curl-pipe it) to apply everything;
each module also runs standalone and is safe to re-run.
Quick start
On a fresh box, apply everything with one command:
curl -fsSL https://git.nic-oconnor.com/public/dotfiles/raw/branch/main/bootstrap.sh | sh
When piped like this (no local checkout), bootstrap.sh clones the repo to
~/.dotfiles and runs from there, so git must be installed first. Re-running
the command updates the checkout (git pull) and re-applies every module.
Override the destination or source with DOTFILES_DIR / DOTFILES_REPO.
Already have a clone? Just run it directly:
./bootstrap.sh
Modules
zsh/— installs zsh + oh-my-zsh, drops a managed~/.zshrc(robbyrussell theme, git plugin), and sets zsh as the login shell.git/— sets gituser.name/user.emailand configurescredential.helper store(plaintext~/.git-credentials, 0600) for HTTPS auth.mcp-config/— shared MCP gateway config sync for laptops (LiteLLM / opencode). Independent ofbootstrap.sh; see its own README.
lib/os-detect.sh provides shared package-manager detection (dnf/yum
vs apt) used by module install scripts.