summaryrefslogtreecommitdiffstats
path: root/crates/runner/src/util/fs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/runner/src/util/fs.rs')
-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> {