mirror of
https://github.com/nushell/nushell.git
synced 2025-01-11 16:58:41 +01:00
fix force rm: should suppress error if directory is not found (#11656)
# Description Fix a breaking change which is introduced by #11621 `rm -f /tmp/aaa` shouldn't return error if `/tmp/aaa/` doesn't exist. # User-Facing Changes NaN # Tests + Formatting Done
This commit is contained in:
parent
859f7b3dc7
commit
25b62c2ac3
@ -254,7 +254,6 @@ fn rm(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// let path = currentdir_path.join(target.item.as_ref());
|
|
||||||
match nu_engine::glob_from(
|
match nu_engine::glob_from(
|
||||||
&target,
|
&target,
|
||||||
¤tdir_path,
|
¤tdir_path,
|
||||||
@ -302,13 +301,11 @@ fn rm(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
return Err(ShellError::GenericError {
|
// glob_from may canonicalize path and return `DirectoryNotFound`
|
||||||
error: e.to_string(),
|
// nushell should suppress the error if `--force` is used.
|
||||||
msg: e.to_string(),
|
if !(force && matches!(e, ShellError::DirectoryNotFound { .. })) {
|
||||||
span: Some(target.span),
|
return Err(e);
|
||||||
help: None,
|
}
|
||||||
inner: vec![],
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -480,3 +480,18 @@ fn rm_files_inside_glob_metachars_dir() {
|
|||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn force_rm_suppress_error() {
|
||||||
|
Playground::setup("force_rm_suppress_error", |dirs, sandbox| {
|
||||||
|
sandbox.with_files(vec![EmptyFile("test_file.txt")]);
|
||||||
|
|
||||||
|
// the second rm should suppress error.
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"rm test_file.txt; rm -f test_file.txt",
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(actual.err.is_empty());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user