#!/bin/bash # Set up the appropriate rustc toolchain set -e cd "$(dirname "$0")" ERRNO=0 RTIM_PATH=$(command -v rustup-toolchain-install-master) || ERRNO=$? CARGO_HOME=${CARGO_HOME:-$HOME/.cargo} # Check if people also install RTIM in other locations beside # ~/.cargo/bin if [[ "$ERRNO" -ne 0 ]] || [[ "$RTIM_PATH" == $CARGO_HOME/bin/rustup-toolchain-install-master ]]; then cargo install -Z install-upgrade rustup-toolchain-install-master else VERSION=$(rustup-toolchain-install-master -V | grep -o "[0-9.]*") REMOTE=$(cargo 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}') if rustc +master -Vv 2>/dev/null | grep -q "$RUST_COMMIT"; then echo "info: master toolchain is up-to-date" exit 0 fi rustup-toolchain-install-master -f -n master -c rustc-dev -- "$RUST_COMMIT" rustup override set master