]> git.lizzy.rs Git - rust.git/blobdiff - rustup-toolchain
Introduce a proper error handling framework
[rust.git] / rustup-toolchain
index 3fbebe1565f7ec5af9f31350c17ba8f5cadbcfcd..7b9a17145d055d5a1261beb4aabcf9d89c976b46 100755 (executable)
@@ -8,10 +8,12 @@ set -e
 # USAGE:
 #
 # ./rustup-toolchain: Update "miri" toolchain to match `rust-version` (the known-good version for this commit).
-# 
+#
 # ./rustup-toolchain HEAD: Update "miri" toolchain and `rust-version` file to latest rustc HEAD.
-# 
+#
 # ./rustup-toolchain $COMMIT: Update "miri" toolchain and `rust-version` file to match that commit.
+#
+# Any extra parameters are passed to `rustup-toolchain-install-master`.
 
 # Make sure rustup-toolchain-install-master is installed.
 if ! which rustup-toolchain-install-master >/dev/null; then
@@ -28,6 +30,7 @@ else
     NEW_COMMIT="$1"
 fi
 echo "$NEW_COMMIT" > rust-version
+shift || true # don't fail if shifting fails
 
 # Check if we already are at that commit.
 CUR_COMMIT=$(rustc +miri --version -v 2>/dev/null | egrep "^commit-hash: " | cut -d " " -f 2)
@@ -39,8 +42,12 @@ fi
 
 # Install and setup new toolchain.
 rustup toolchain uninstall miri
-rustup-toolchain-install-master -n miri -c rust-src -c rustc-dev -c llvm-tools -- "$NEW_COMMIT"
+rustup-toolchain-install-master -n miri -c cargo -c rust-src -c rustc-dev -c llvm-tools -c rustfmt -c clippy "$@" -- "$NEW_COMMIT"
 rustup override set miri
 
 # Cleanup.
 cargo clean
+
+# Call 'cargo metadata' on the sources in case that changes the lockfile
+# (which fails under some setups when it is done from inside vscode).
+cargo metadata --format-version 1 --manifest-path "$(rustc --print sysroot)/lib/rustlib/rustc-src/rust/compiler/rustc/Cargo.toml" >/dev/null