Created
March 7, 2026 17:55
-
-
Save myinusa/0d8e043f923c6ad7d21a75a23da97ae9 to your computer and use it in GitHub Desktop.
a-series-of-tools-linux-bootstrap.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| set -Eeuo pipefail | |
| LOG_FILE="${HOME}/install-bootstrap.log" | |
| log() { | |
| printf '\n[%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$*" | tee -a "$LOG_FILE" | |
| } | |
| run() { | |
| log "START: $1" | |
| shift | |
| "$@" 2>&1 | tee -a "$LOG_FILE" | |
| log "DONE: $1" | |
| } | |
| trap 'echo; echo "Failed on line $LINENO. Check log: $LOG_FILE"' ERR | |
| log "Bootstrap install started" | |
| # --- 1. System Services (Tailscale) --- | |
| log "Installing Tailscale (requires sudo)" | |
| curl -fsSL https://tailscale.com/install.sh | sudo sh 2>&1 | tee -a "$LOG_FILE" | |
| # --- 2. Language Managers --- | |
| log "Installing Rustup" | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG_FILE" | |
| log "Installing pyenv" | |
| curl -fsSL https://pyenv.run | bash 2>&1 | tee -a "$LOG_FILE" | |
| # --- 3. Modern Package Managers --- | |
| log "Installing uv" | |
| curl -LsSf https://astral.sh/uv/install.sh | sh 2>&1 | tee -a "$LOG_FILE" | |
| log "Installing pnpm" | |
| curl -fsSL https://get.pnpm.io/install.sh | sh 2>&1 | tee -a "$LOG_FILE" | |
| log "Installing Bun" | |
| curl -fsSL https://bun.sh/install | bash 2>&1 | tee -a "$LOG_FILE" | |
| log "Installing Claude CLI" | |
| curl -fsSL https://claude.ai/install.sh | bash 2>&1 | tee -a "$LOG_FILE" | |
| cat <<'EOF' | |
| All installers finished. | |
| You may need to reload your shell for PATH changes to take effect: | |
| source "$HOME/.cargo/env" # Rust | |
| export PATH="$HOME/.pyenv/bin:$PATH" # pyenv, if not already added by installer | |
| exec "$SHELL" -l | |
| Log saved to: | |
| ~/install-bootstrap.log | |
| EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment