chore(config): add automated Rust install to make setup
Adds tooling/install-rust script that installs Rust via rustup if not present, with clippy and rustfmt components. Idempotent — skips when already installed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -33,9 +33,7 @@ setup: setup-rust setup-godot setup-tooling decisions-sync
|
||||
@echo "Dev environment ready."
|
||||
|
||||
setup-rust:
|
||||
@echo "Checking Rust toolchain..."
|
||||
@command -v cargo >/dev/null 2>&1 || { echo "Install Rust: https://rustup.rs"; exit 1; }
|
||||
@rustup component add clippy rustfmt
|
||||
@tooling/install-rust
|
||||
|
||||
setup-godot:
|
||||
@GODOT_VERSION=$(GODOT_VERSION) tooling/install-godot
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ Unit tests live inside their respective projects (`server/` uses `#[cfg(test)]`
|
||||
|
||||
| Tool | Version | Purpose |
|
||||
|------|---------|---------|
|
||||
| Rust (via rustup) | stable | Server compilation, clippy, rustfmt |
|
||||
| Rust (via rustup) | stable | Server compilation, clippy, rustfmt (auto-installed by `make setup`) |
|
||||
| Godot | 4.x | Client editor and runtime (auto-installed to `~/bin/` by `make setup`) |
|
||||
| Python | 3.x | Tooling scripts, db connectors |
|
||||
| Make | any | Task runner (see below) |
|
||||
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user