2020-04-07 21:51:59 +02:00
|
|
|
#!/usr/bin/env bash
|
2019-02-02 20:54:18 +01:00
|
|
|
# Set up the appropriate rustc toolchain
|
|
|
|
|
2019-10-14 19:51:41 +02:00
|
|
|
set -e
|
|
|
|
|
2019-10-18 09:58:26 +02:00
|
|
|
cd "$(dirname "$0")"
|
2019-06-03 04:23:15 +02:00
|
|
|
|
2019-11-28 12:12:01 +01:00
|
|
|
RTIM_PATH=$(command -v rustup-toolchain-install-master) || INSTALLED=false
|
2019-10-25 15:20:15 +02:00
|
|
|
CARGO_HOME=${CARGO_HOME:-$HOME/.cargo}
|
|
|
|
|
2019-11-28 12:12:01 +01:00
|
|
|
# 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
|
2019-11-27 10:32:51 +01:00
|
|
|
cargo +nightly install rustup-toolchain-install-master
|
2019-10-25 15:20:15 +02:00
|
|
|
else
|
|
|
|
VERSION=$(rustup-toolchain-install-master -V | grep -o "[0-9.]*")
|
2020-02-05 14:37:33 +01:00
|
|
|
REMOTE=$(cargo +nightly search rustup-toolchain-install-master | grep -o "[0-9.]*")
|
2019-10-25 15:20:15 +02:00
|
|
|
echo "info: skipping updating rustup-toolchain-install-master at $RTIM_PATH"
|
|
|
|
echo " current version : $VERSION"
|
|
|
|
echo " remote version : $REMOTE"
|
2019-06-03 04:23:15 +02:00
|
|
|
fi
|
2019-02-02 20:54:18 +01:00
|
|
|
|
2019-10-24 16:59:57 +02:00
|
|
|
RUST_COMMIT=$(git ls-remote https://github.com/rust-lang/rust master | awk '{print $1}')
|
|
|
|
|
|
|
|
if rustc +master -Vv 2>/dev/null | grep -q "$RUST_COMMIT"; then
|
|
|
|
echo "info: master toolchain is up-to-date"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2019-10-25 19:16:14 +02:00
|
|
|
if [[ -n "$HOST_TOOLCHAIN" ]]; then
|
|
|
|
TOOLCHAIN=('--host' "$HOST_TOOLCHAIN")
|
|
|
|
else
|
|
|
|
TOOLCHAIN=()
|
|
|
|
fi
|
|
|
|
|
2020-05-28 15:45:24 +02:00
|
|
|
rustup-toolchain-install-master -f -n master "${TOOLCHAIN[@]}" -c rustc-dev -c llvm-tools -- "$RUST_COMMIT"
|
2019-02-02 20:54:18 +01:00
|
|
|
rustup override set master
|