X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=setup-toolchain.sh;h=191ea4315a6b5a8a29e56f6440f88115c466e8b9;hb=bbbc973a842fc515f9b22d10d103bbf2d7827697;hp=c9d0b8623ba904ccbc3d29ac52528e0f32d4e04f;hpb=37ea4368215fd1654aff8e48e20aff22d08ce9f7;p=rust.git diff --git a/setup-toolchain.sh b/setup-toolchain.sh index c9d0b8623ba..191ea4315a6 100755 --- a/setup-toolchain.sh +++ b/setup-toolchain.sh @@ -1,12 +1,22 @@ -#!/bin/bash +#!/usr/bin/env bash # Set up the appropriate rustc toolchain set -e cd "$(dirname "$0")" -if [[ "$CI" == true ]] || ! command -v rustup-toolchain-install-master > /dev/null; then - cargo install -Z install-upgrade rustup-toolchain-install-master --bin rustup-toolchain-install-master +RTIM_PATH=$(command -v rustup-toolchain-install-master) || INSTALLED=false +CARGO_HOME=${CARGO_HOME:-$HOME/.cargo} + +# Check if RTIM is not installed or installed in other locations not in ~/.cargo/bin +if [[ "$INSTALLED" == false || "$RTIM_PATH" == $CARGO_HOME/bin/rustup-toolchain-install-master ]]; then + cargo +nightly install rustup-toolchain-install-master +else + VERSION=$(rustup-toolchain-install-master -V | grep -o "[0-9.]*") + REMOTE=$(cargo +nightly search rustup-toolchain-install-master | grep -o "[0-9.]*") + echo "info: skipping updating rustup-toolchain-install-master at $RTIM_PATH" + echo " current version : $VERSION" + echo " remote version : $REMOTE" fi RUST_COMMIT=$(git ls-remote https://github.com/rust-lang/rust master | awk '{print $1}') @@ -16,5 +26,11 @@ if rustc +master -Vv 2>/dev/null | grep -q "$RUST_COMMIT"; then exit 0 fi -rustup-toolchain-install-master -f -n master -c rustc-dev -- "$RUST_COMMIT" +if [[ -n "$HOST_TOOLCHAIN" ]]; then + TOOLCHAIN=('--host' "$HOST_TOOLCHAIN") +else + TOOLCHAIN=() +fi + +rustup-toolchain-install-master -f -n master "${TOOLCHAIN[@]}" -c rustc-dev -c llvm-tools -- "$RUST_COMMIT" rustup override set master