mirror of
https://github.com/nushell/nushell.git
synced 2025-05-08 20:14:26 +02:00
Fix: Directories using a tilde to represent HOME will now be converted to an absolute-path before running an external (#14959)
Fixes #14780 - Directories using a tilde to represent HOME will now be converted to an absolute-path before running an external.
This commit is contained in:
parent
08b5d5cce5
commit
aa62de78e6
@ -140,18 +140,18 @@ pub fn env_to_string(
|
|||||||
// Try to convert PATH/Path list to a string
|
// Try to convert PATH/Path list to a string
|
||||||
match value {
|
match value {
|
||||||
Value::List { vals, .. } => {
|
Value::List { vals, .. } => {
|
||||||
let paths = vals
|
let paths: Vec<String> = vals
|
||||||
.iter()
|
.iter()
|
||||||
.map(Value::coerce_str)
|
.filter_map(|v| v.coerce_str().ok())
|
||||||
.collect::<Result<Vec<_>, _>>()?;
|
.map(|s| nu_path::expand_tilde(&*s).to_string_lossy().into_owned())
|
||||||
|
.collect();
|
||||||
|
|
||||||
match std::env::join_paths(paths.iter().map(AsRef::as_ref)) {
|
std::env::join_paths(paths.iter().map(AsRef::<str>::as_ref))
|
||||||
Ok(p) => Ok(p.to_string_lossy().to_string()),
|
.map(|p| p.to_string_lossy().to_string())
|
||||||
Err(_) => Err(ShellError::EnvVarNotAString {
|
.map_err(|_| ShellError::EnvVarNotAString {
|
||||||
envvar_name: env_name.to_string(),
|
envvar_name: env_name.to_string(),
|
||||||
span: value.span(),
|
span: value.span(),
|
||||||
}),
|
})
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_ => Err(ShellError::EnvVarNotAString {
|
_ => Err(ShellError::EnvVarNotAString {
|
||||||
envvar_name: env_name.to_string(),
|
envvar_name: env_name.to_string(),
|
||||||
|
Loading…
Reference in New Issue
Block a user