From fe0daa7be3437766ac70422fb9df8c20523fd64a Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 5 Mar 2024 09:37:25 +0100 Subject: [PATCH] Revert "prioritise rustup sysroots over system ones" This reverts commit 9f1d4aa4b9e4a1572c1210b3bd7c7490778b6112. --- crates/toolchain/src/lib.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/toolchain/src/lib.rs b/crates/toolchain/src/lib.rs index 793138588a3..ae71b6700c0 100644 --- a/crates/toolchain/src/lib.rs +++ b/crates/toolchain/src/lib.rs @@ -63,17 +63,21 @@ fn get_path_for_executable(executable_name: &'static str) -> PathBuf { // The current implementation checks three places for an executable to use: // 1) Appropriate environment variable (erroring if this is set but not a usable executable) // example: for cargo, this checks $CARGO environment variable; for rustc, $RUSTC; etc - // 2) `$CARGO_HOME/bin/` + // 2) `` + // example: for cargo, this tries just `cargo`, which will succeed if `cargo` is on the $PATH + // 3) `$CARGO_HOME/bin/` // where $CARGO_HOME defaults to ~/.cargo (see https://doc.rust-lang.org/cargo/guide/cargo-home.html) // example: for cargo, this tries $CARGO_HOME/bin/cargo, or ~/.cargo/bin/cargo if $CARGO_HOME is unset. // It seems that this is a reasonable place to try for cargo, rustc, and rustup - // 3) `` - // example: for cargo, this tries just `cargo`, which will succeed if `cargo` is on the $PATH let env_var = executable_name.to_ascii_uppercase(); if let Some(path) = env::var_os(env_var) { return path.into(); } + if lookup_in_path(executable_name) { + return executable_name.into(); + } + if let Some(mut path) = get_cargo_home() { path.push("bin"); path.push(executable_name); @@ -82,10 +86,6 @@ fn get_path_for_executable(executable_name: &'static str) -> PathBuf { } } - if lookup_in_path(executable_name) { - return executable_name.into(); - } - executable_name.into() }