diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-11-17 01:14:00 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-11-17 01:14:00 +0100 |
commit | b498bff78b88d4ca84e45e007094a3bbdde95117 (patch) | |
tree | 5d6286963448ddc4b601b893ff7495cb2e2188b0 | |
parent | e475a15a74842bcf86294e7fafe3c97d0dae2127 (diff) | |
download | rebel-b498bff78b88d4ca84e45e007094a3bbdde95117.tar rebel-b498bff78b88d4ca84e45e007094a3bbdde95117.zip |
runner: util: fs: make ensure_removed() work with regular files
-rw-r--r-- | crates/runner/src/util/fs.rs | 9 |
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> { |