#!/usr/bin/env bash # ============================================================================= # run_onchange_30-ensure-cargo.sh.tmpl # Make sure rustup/cargo is available. If not, install rustup. # Runs on every apply because the script body rarely changes but we want a # fresh check after package installs. # ============================================================================= set -euo pipefail log() { printf '\033[1;34m[cargo]\033[0m %s\n' "$*"; } if command -v cargo >/dev/null 2>&1; then log "cargo already installed: $(cargo --version)" exit 0 fi if command -v rustup >/dev/null 2>&1; then log "rustup present but cargo missing — running rustup default" rustup default stable exit 0 fi log "no cargo or rustup — installing rustup" sh -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y --default-toolchain stable --profile minimal # shellcheck disable=SC1091 source "$HOME/.cargo/env" log "rustup installed: $(rustup --version)" log "cargo installed: $(cargo --version)"