diff options
Diffstat (limited to 'script')
| -rw-r--r-- | script/setup-rust | 17 | ||||
| -rw-r--r-- | script/setup-rust.ps1 | 23 |
2 files changed, 40 insertions, 0 deletions
diff --git a/script/setup-rust b/script/setup-rust new file mode 100644 index 00000000..90fffdca --- /dev/null +++ b/script/setup-rust @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# Installs the Rust toolchain via rustup. +# Run this before any platform-specific setup script. + +set -euo pipefail + +CARGO_BIN="$HOME/.cargo/bin/rustup" + +if command -v rustup &> /dev/null || [ -f "$CARGO_BIN" ]; then + echo "rustup already installed" + exit 0 +fi + +echo "Installing rustup..." +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +echo "Rust installed. Reload your shell: source \"\$HOME/.cargo/env\"" diff --git a/script/setup-rust.ps1 b/script/setup-rust.ps1 new file mode 100644 index 00000000..7fc1b38a --- /dev/null +++ b/script/setup-rust.ps1 @@ -0,0 +1,23 @@ +# Installs the Rust toolchain via rustup. +# Run this before any platform-specific setup script. + +$ErrorActionPreference = "Stop" + +if (Get-Command cargo -ErrorAction SilentlyContinue) { + Write-Output "rustup already installed: $(rustup --version)" + exit 0 +} + +$cargoHome = if ($env:CARGO_HOME) { $env:CARGO_HOME } else { "$env:USERPROFILE\.cargo" } +$rustupExe = "$cargoHome\bin\rustup.exe" + +if (-not (Test-Path $rustupExe)) { + Write-Output "Installing rustup..." + $installer = "$env:TEMP\rustup-init.exe" + Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe" -OutFile $installer + & $installer -y --default-toolchain stable + Remove-Item -Force $installer +} + +$env:PATH = "$cargoHome\bin;$env:PATH" +Write-Output "Rust installed: $(& rustc --version)" |
