Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/env.rs')
-rw-r--r--crates/project-model/src/env.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/crates/project-model/src/env.rs b/crates/project-model/src/env.rs
index 88fb10a68c..049acc290b 100644
--- a/crates/project-model/src/env.rs
+++ b/crates/project-model/src/env.rs
@@ -75,14 +75,26 @@ pub(crate) fn cargo_config_env(
}
// if successful we receive `env.key.value = "value" per entry
tracing::debug!("Discovering cargo config env by {:?}", cargo_config);
- utf8_stdout(cargo_config).map(parse_output_cargo_config_env).unwrap_or_default()
+ utf8_stdout(cargo_config)
+ .map(parse_output_cargo_config_env)
+ .inspect(|env| {
+ tracing::debug!("Discovered cargo config env: {:?}", env);
+ })
+ .inspect_err(|err| {
+ tracing::debug!("Failed to discover cargo config env: {:?}", err);
+ })
+ .unwrap_or_default()
}
fn parse_output_cargo_config_env(stdout: String) -> FxHashMap<String, String> {
stdout
.lines()
.filter_map(|l| l.strip_prefix("env."))
- .filter_map(|l| l.split_once(".value = "))
+ .filter_map(|l| {
+ l.split_once(" = ")
+ // cargo used to report it with this, keep it for a couple releases around
+ .or_else(|| l.split_once(".value = "))
+ })
.map(|(key, value)| (key.to_owned(), value.trim_matches('"').to_owned()))
.collect()
}