Conversation
Replicates the macOS rust install from d4fc0d9 to the Ubuntu (apt) and Arch (pacman) platforms, since rust is required for building Ruby from source. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code review by Claude (Claude Code)
The PR does two things: (1) adds a 1. "rust is required for building Ruby from source" is inaccurate (all 3 platforms)Rust is not required to build Ruby. Ruby's 2. The rust install is redundant in the common path
3. Ubuntu's apt
|
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the fragile `return 0 2>/dev/null || exit 0` with a structured if/else so skipping auth never risks interrupting the sourced setup.sh. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Setup adds the user to new groups (e.g. docker) and writes shell config. Hand off `exec su - $USER` so those changes take effect immediately without re-ssh or re-login. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`su - $USER` prompts for the user's password. The only group change that needs to take effect immediately is docker, so re-exec into a shell with the docker group active via newgrp, which needs no password. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`$SHELL -l` re-reads the user's startup files (bash or zsh) so PATH/env changes from setup take effect. On Linux, wrap it in `sg docker` so the newly added docker group membership is active too. `sg` needs no password (the user is already a member), and is only used when the user is actually in the docker group, so it never blocks on a prompt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Installs Claude Code via the native installer (claude.ai/install.sh) only when OPT_IN_CLAUDE_CODE=1. The opt-in gate lives in the lib/ scripts; doctor skips silently when not opted in. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude Code installs to ~/.local/bin, which isn't on PATH by default. Write the PATH addition to the rc file of the user's actual login shell (bash -> ~/.bashrc, zsh -> ~/.zshrc) with an OS-based fallback, so it works for bash on Ubuntu/Omarchy and zsh on macOS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Write PATH/env to the user's login shell rc (bash -> ~/.bashrc, zsh -> ~/.zshrc) with an OS fallback, never hardcode ~/.zshrc. Flags the existing mise/brew ~/.zshrc-only writes as a known bug. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mise_setup.sh and packages_setup.sh hardcoded ~/.zshrc for persisting `mise activate` / `brew shellenv`. setup.sh re-execs `$SHELL -l`, and on Ubuntu/Arch the default login shell is bash, so a bash user never sourced those lines -- mise (and the Ruby/Node toolchain it fronts) silently failed to activate in new shells. Centralize the login-shell-rc selection in a login_shell_rc() helper in common.sh (bash -> ~/.bashrc, zsh -> ~/.zshrc, with an $OS fallback) and use it from mise_setup.sh, packages_setup.sh, and claude_code_setup.sh (whose inline case block it replaces). Update AGENTS.md to point at the helper and drop the now-fixed "known bug" note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
No description provided.