diff options
Diffstat (limited to 'crates/runner/src/util')
-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> { |