summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJinho Bang <zino@chromium.org>2018-10-17 14:40:03 +0900
committerRyan Dahl <ry@tinyclouds.org>2018-10-17 08:24:31 -0400
commit32f07971284f05993cf702aa589859e7900406b4 (patch)
tree99c900df9df6fd8c60e8d2595e45a3818133f2dd /src
parentd4afbe6ef3206e53e2ddc7f59c6b90bbffcbe988 (diff)
Fix a bug that copyFile reports different error codes
This is a workaroud. Once the issue is resolved in Rust side, we should remove it. Fixes #895
Diffstat (limited to 'src')
-rw-r--r--src/ops.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ops.rs b/src/ops.rs
index 53ed85b7f..d786dfa41 100644
--- a/src/ops.rs
+++ b/src/ops.rs
@@ -811,6 +811,16 @@ fn op_copy_file(
debug!("op_copy_file {} {}", from.display(), to.display());
blocking!(base.sync(), || {
+ // On *nix, Rust deem non-existent path as invalid input
+ // See https://github.com/rust-lang/rust/issues/54800
+ // Once the issue is reolved, we should remove this workaround.
+ if cfg!(unix) && !from.is_file() {
+ return Err(errors::new(
+ ErrorKind::NotFound,
+ "File not found".to_string(),
+ ));
+ }
+
fs::copy(&from, &to)?;
Ok(empty_buf())
})