#!/usr/bin/env bash # tooling/install-rust — Install Rust via rustup and add required components # # Usage: # ./tooling/install-rust # # Installs rustup + stable toolchain if not present, then ensures # clippy and rustfmt components are installed. Idempotent. set -euo pipefail if command -v rustup >/dev/null 2>&1; then echo "Rust already installed: $(rustc --version)" rustup component add clippy rustfmt 2>/dev/null echo "Components verified: clippy, rustfmt" exit 0 fi echo "Installing Rust via rustup..." if ! command -v curl >/dev/null 2>&1; then echo "Error: curl is required to install Rust." exit 1 fi curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --component clippy rustfmt # Source cargo env for the rest of this script # shellcheck source=/dev/null . "$HOME/.cargo/env" echo "Rust installed: $(rustc --version)" echo "Components: clippy, rustfmt"