#!/bin/sh
# SPDX-License-Identifier: GPL-3.0-only

# Install Rust via rustup, along with the pinned toolchain.

# shellcheck shell=dash
# shellcheck disable=SC1091

set -Ee

RUSTUP_NEW_INSTALL=0

# NOTE: rustup is used to allow multiple toolchain installations.
if ! command -v rustup >/dev/null 2>&1; then
    RUSTUP_NEW_INSTALL=1
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
        | sh -s -- -y --default-toolchain stable

    . "${HOME}/.cargo/env"
fi

# XXX: rustup has no command to install a toolchain from a TOML file.
# Rely on the fact that `show` will install the default toolchain.
rustup show

if [ "$RUSTUP_NEW_INSTALL" = "1" ]; then
    printf "\e[33m>> rustup was just installed. Ensure cargo is on the PATH with:\e[0m\n"
    printf "    source ~/.cargo/env\n\n"
fi