diff --git a/README.md b/README.md index a4ed4977..20f4ea48 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,11 @@ The installer: 2. Runs YADR's native `rake install` for vim/prezto/plugins 3. Deploys the personal dotfiles on top of `$HOME`, moving any collisions to `~/.drunkendotfiles.bak./` +4. Installs [Claude Code](https://claude.ai/code) (Anthropic's CLI) if it + isn't already on the machine — set `DRUNKENDOTFILES_SKIP_CLAUDE=1` to + skip this step -Requires `git` and `rake` (ruby). +Requires `git`, `rake` (ruby), and `curl`. ## Upgrading diff --git a/install.sh b/install.sh index 55f924eb..d94b6e40 100755 --- a/install.sh +++ b/install.sh @@ -110,10 +110,26 @@ for f in "${PERSONAL_FILES[@]}"; do deploy_one "$f"; done for d in "${PERSONAL_DIRS[@]}"; do deploy_one "$d"; done # .local/bin/claude is a relative symlink to ../share/claude/versions/... -# If that target isn't present on this machine, remove the dangling link. +# If that target isn't present on this machine, remove the dangling link so +# Claude Code's own installer (next step) can manage it. if [ -L "$HOME/.local/bin/claude" ] && [ ! -e "$HOME/.local/bin/claude" ]; then rm "$HOME/.local/bin/claude" - info "(skipped .local/bin/claude: target not present on this machine)" +fi + +# 4. Install Claude Code (Anthropic's CLI). Skip if already installed or +# explicitly opted out via DRUNKENDOTFILES_SKIP_CLAUDE=1. +if [ "${DRUNKENDOTFILES_SKIP_CLAUDE:-0}" = "1" ]; then + info "Skipping Claude Code install (DRUNKENDOTFILES_SKIP_CLAUDE=1)" +elif have claude || [ -x "$HOME/.local/bin/claude" ]; then + info "Claude Code already installed ($(claude --version 2>/dev/null || echo 'version unknown'))" +else + log "Installing Claude Code" + if have curl; then + curl -fsSL https://claude.ai/install.sh | bash \ + || warn "Claude Code install failed; continuing. Install manually with: curl -fsSL https://claude.ai/install.sh | bash" + else + warn "curl not found; skipping Claude Code install" + fi fi # Ensure +x on user scripts