diff options
Diffstat (limited to 'cli/ops/fs.rs')
-rw-r--r-- | cli/ops/fs.rs | 50 |
1 files changed, 22 insertions, 28 deletions
diff --git a/cli/ops/fs.rs b/cli/ops/fs.rs index 86780ebf7..014ba04a3 100644 --- a/cli/ops/fs.rs +++ b/cli/ops/fs.rs @@ -1,9 +1,8 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. // Some deserializer fields are only used on Unix and Windows build fails without it use super::dispatch_json::{blocking_json, Deserialize, JsonOp, Value}; -use crate::deno_error::DenoError; -use crate::deno_error::ErrorKind; use crate::fs as deno_fs; +use crate::op_error::OpError; use crate::ops::dispatch_json::JsonResult; use crate::ops::json_op; use crate::state::State; @@ -55,7 +54,7 @@ fn op_chdir( _state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: ChdirArgs = serde_json::from_value(args)?; std::env::set_current_dir(&args.directory)?; Ok(JsonOp::Sync(json!({}))) @@ -74,7 +73,7 @@ fn op_mkdir( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: MkdirArgs = serde_json::from_value(args)?; let path = deno_fs::resolve_from_cwd(Path::new(&args.path))?; @@ -101,7 +100,7 @@ fn op_chmod( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: ChmodArgs = serde_json::from_value(args)?; let path = deno_fs::resolve_from_cwd(Path::new(&args.path))?; @@ -135,7 +134,7 @@ fn op_chown( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: ChownArgs = serde_json::from_value(args)?; let path = deno_fs::resolve_from_cwd(Path::new(&args.path))?; @@ -146,7 +145,7 @@ fn op_chown( debug!("op_chown {}", path.display()); match deno_fs::chown(args.path.as_ref(), args.uid, args.gid) { Ok(_) => Ok(json!({})), - Err(e) => Err(e), + Err(e) => Err(OpError::from(e)), } }) } @@ -163,7 +162,7 @@ fn op_remove( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: RemoveArgs = serde_json::from_value(args)?; let path = deno_fs::resolve_from_cwd(Path::new(&args.path))?; let recursive = args.recursive; @@ -198,7 +197,7 @@ fn op_copy_file( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: CopyFileArgs = serde_json::from_value(args)?; let from = deno_fs::resolve_from_cwd(Path::new(&args.from))?; let to = deno_fs::resolve_from_cwd(Path::new(&args.to))?; @@ -213,10 +212,7 @@ fn op_copy_file( // 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( - DenoError::new(ErrorKind::NotFound, "File not found".to_string()) - .into(), - ); + return Err(OpError::not_found("File not found".to_string())); } fs::copy(&from, &to)?; @@ -297,7 +293,7 @@ fn op_stat( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: StatArgs = serde_json::from_value(args)?; let filename = deno_fs::resolve_from_cwd(Path::new(&args.filename))?; let lstat = args.lstat; @@ -327,7 +323,7 @@ fn op_realpath( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: RealpathArgs = serde_json::from_value(args)?; let path = deno_fs::resolve_from_cwd(Path::new(&args.path))?; @@ -359,7 +355,7 @@ fn op_read_dir( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: ReadDirArgs = serde_json::from_value(args)?; let path = deno_fs::resolve_from_cwd(Path::new(&args.path))?; @@ -398,7 +394,7 @@ fn op_rename( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: RenameArgs = serde_json::from_value(args)?; let oldpath = deno_fs::resolve_from_cwd(Path::new(&args.oldpath))?; let newpath = deno_fs::resolve_from_cwd(Path::new(&args.newpath))?; @@ -427,7 +423,7 @@ fn op_link( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: LinkArgs = serde_json::from_value(args)?; let oldname = deno_fs::resolve_from_cwd(Path::new(&args.oldname))?; let newname = deno_fs::resolve_from_cwd(Path::new(&args.newname))?; @@ -455,7 +451,7 @@ fn op_symlink( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: SymlinkArgs = serde_json::from_value(args)?; let oldname = deno_fs::resolve_from_cwd(Path::new(&args.oldname))?; let newname = deno_fs::resolve_from_cwd(Path::new(&args.newname))?; @@ -463,9 +459,7 @@ fn op_symlink( state.check_write(&newname)?; // TODO Use type for Windows. if cfg!(windows) { - return Err( - DenoError::new(ErrorKind::Other, "Not implemented".to_string()).into(), - ); + return Err(OpError::other("Not implemented".to_string())); } let is_sync = args.promise_id.is_none(); blocking_json(is_sync, move || { @@ -487,7 +481,7 @@ fn op_read_link( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: ReadLinkArgs = serde_json::from_value(args)?; let name = deno_fs::resolve_from_cwd(Path::new(&args.name))?; @@ -515,7 +509,7 @@ fn op_truncate( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: TruncateArgs = serde_json::from_value(args)?; let filename = deno_fs::resolve_from_cwd(Path::new(&args.name))?; let len = args.len; @@ -544,7 +538,7 @@ fn op_make_temp_dir( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: MakeTempArgs = serde_json::from_value(args)?; let dir = args.dir.map(PathBuf::from); @@ -576,7 +570,7 @@ fn op_make_temp_file( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: MakeTempArgs = serde_json::from_value(args)?; let dir = args.dir.map(PathBuf::from); @@ -617,7 +611,7 @@ fn op_utime( state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let args: Utime = serde_json::from_value(args)?; state.check_write(Path::new(&args.filename))?; let is_sync = args.promise_id.is_none(); @@ -632,7 +626,7 @@ fn op_cwd( _state: &State, _args: Value, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<JsonOp, ErrBox> { +) -> Result<JsonOp, OpError> { let path = std::env::current_dir()?; let path_str = path.into_os_string().into_string().unwrap(); Ok(JsonOp::Sync(json!(path_str))) |