Skip to content

Commit

Permalink
Fix cargo_target_empty_cfg test with env var.
Browse files Browse the repository at this point in the history
  • Loading branch information
ehuss committed Mar 2, 2021
1 parent cb0e8c3 commit a0d0d01
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/cargo/util/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -471,22 +471,25 @@ impl Config {
pub fn target_dir(&self) -> CargoResult<Option<Filesystem>> {
if let Some(dir) = &self.target_dir {
Ok(Some(dir.clone()))
} else if let Some(dir) = env::var_os("CARGO_TARGET_DIR") {
} else if let Some(dir) = self.env.get("CARGO_TARGET_DIR") {
// Check if the CARGO_TARGET_DIR environment variable is set to an empty string.
if dir.to_string_lossy() == "" {
anyhow::bail!("the target directory is set to an empty string in the `CARGO_TARGET_DIR` environment variable")
if dir.is_empty() {
bail!(
"the target directory is set to an empty string in the \
`CARGO_TARGET_DIR` environment variable"
)
}

Ok(Some(Filesystem::new(self.cwd.join(dir))))
} else if let Some(val) = &self.build_config()?.target_dir {
let path = val.resolve_path(self);

// Check if the target directory is set to an empty string in the config.toml file.
if val.raw_value() == "" {
anyhow::bail!(format!(
if val.raw_value().is_empty() {
bail!(
"the target directory is set to an empty string in {}",
val.value().definition
),)
)
}

Ok(Some(Filesystem::new(path)))
Expand Down

0 comments on commit a0d0d01

Please sign in to comment.