Load env pwd (#7963)

# Description

Fixes #7940
avoid `load-env` to change PWD 

# User-Facing Changes

`{"PWD": whatever} | load-env` now fails
This commit is contained in:
Amirhossein Akhlaghpour 2023-02-06 02:10:46 +03:30 committed by GitHub
parent ec4370069a
commit aef88aa03e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -47,10 +47,7 @@ impl Command for LoadEnv {
}
if env_var == "PWD" {
let cwd = current_dir(engine_state, stack)?;
let rhs = rhs.as_string()?;
let rhs = nu_path::expand_path_with(rhs, cwd);
stack.add_env_var(env_var, Value::string(rhs.to_string_lossy(), call.head));
return Err(ShellError::AutomaticEnvVarSetManually(env_var, call.head));
} else {
stack.add_env_var(env_var, rhs);
}

View File

@ -99,6 +99,13 @@ fn load_env_file_pwd_env_var_fails() {
assert!(actual.err.contains("automatic_env_var_set_manually"));
}
#[test]
fn load_env_pwd_env_var_fails() {
let actual = nu!(cwd: ".", r#"load-env { PWD : 'foo' }"#);
assert!(actual.err.contains("automatic_env_var_set_manually"));
}
// FIXME: for some reason Nu is attempting to execute foo in `let-env FOO = foo`
#[ignore]
#[test]