summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2021-11-17 01:14:00 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2021-11-17 01:14:00 +0100
commitb498bff78b88d4ca84e45e007094a3bbdde95117 (patch)
tree5d6286963448ddc4b601b893ff7495cb2e2188b0
parente475a15a74842bcf86294e7fafe3c97d0dae2127 (diff)
downloadrebel-b498bff78b88d4ca84e45e007094a3bbdde95117.tar
rebel-b498bff78b88d4ca84e45e007094a3bbdde95117.zip
runner: util: fs: make ensure_removed() work with regular files
-rw-r--r--crates/runner/src/util/fs.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/crates/runner/src/util/fs.rs b/crates/runner/src/util/fs.rs
index 099a339..9e16648 100644
--- a/crates/runner/src/util/fs.rs
+++ b/crates/runner/src/util/fs.rs
@@ -49,12 +49,17 @@ pub fn mkdir<P: AsRef<Path>>(path: P) -> Result<()> {
}
pub fn ensure_removed<P: AsRef<Path>>(path: P) -> Result<()> {
- fs::remove_dir_all(path.as_ref())
+ let result = if path.as_ref().is_dir() {
+ fs::remove_dir_all(path.as_ref())
+ } else {
+ fs::remove_file(path.as_ref())
+ };
+ result
.or_else(|err| match err.kind() {
io::ErrorKind::NotFound => Ok(()),
_ => Err(err),
})
- .with_context(|| format!("Failed to delete directory {:?}", path.as_ref()))
+ .with_context(|| format!("Failed to delete {:?}", path.as_ref()))
}
pub fn is_dir_empty<P: AsRef<Path>>(path: P) -> Result<bool> {