diff options
Diffstat (limited to 'cli/ops/tty.rs')
-rw-r--r-- | cli/ops/tty.rs | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/cli/ops/tty.rs b/cli/ops/tty.rs index d6aaeb785..b62b727c3 100644 --- a/cli/ops/tty.rs +++ b/cli/ops/tty.rs @@ -1,10 +1,10 @@ use super::dispatch_json::JsonOp; use super::io::std_file_resource; use super::io::{StreamResource, StreamResourceHolder}; -use crate::op_error::OpError; use crate::state::State; use deno_core::CoreIsolate; use deno_core::CoreIsolateState; +use deno_core::ErrBox; use deno_core::ZeroCopyBuf; #[cfg(unix)] use nix::sys::termios; @@ -23,15 +23,15 @@ const RAW_MODE_MASK: DWORD = wincon::ENABLE_LINE_INPUT #[cfg(windows)] fn get_windows_handle( f: &std::fs::File, -) -> Result<std::os::windows::io::RawHandle, OpError> { +) -> Result<std::os::windows::io::RawHandle, ErrBox> { use std::os::windows::io::AsRawHandle; use winapi::um::handleapi; let handle = f.as_raw_handle(); if handle == handleapi::INVALID_HANDLE_VALUE { - return Err(OpError::from(std::io::Error::last_os_error())); + return Err(ErrBox::last_os_error()); } else if handle.is_null() { - return Err(OpError::other("null handle".to_owned())); + return Err(ErrBox::new("ReferenceError", "null handle")); } Ok(handle) } @@ -53,7 +53,7 @@ pub fn op_set_raw( state: &Rc<State>, args: Value, _zero_copy: &mut [ZeroCopyBuf], -) -> Result<JsonOp, OpError> { +) -> Result<JsonOp, ErrBox> { state.check_unstable("Deno.setRaw"); let args: SetRawArgs = serde_json::from_value(args)?; let rid = args.rid; @@ -73,7 +73,7 @@ pub fn op_set_raw( let mut resource_table = isolate_state.resource_table.borrow_mut(); let resource_holder = resource_table.get_mut::<StreamResourceHolder>(rid); if resource_holder.is_none() { - return Err(OpError::bad_resource_id()); + return Err(ErrBox::bad_resource_id()); } let resource_holder = resource_holder.unwrap(); @@ -98,28 +98,28 @@ pub fn op_set_raw( // some operation is in-flight. resource_holder.resource = StreamResource::FsFile(Some((tokio_file, metadata))); - return Err(OpError::resource_unavailable()); + return Err(ErrBox::resource_unavailable()); } } } else { - return Err(OpError::resource_unavailable()); + return Err(ErrBox::resource_unavailable()); } } _ => { - return Err(OpError::bad_resource_id()); + return Err(ErrBox::bad_resource_id()); } }; if handle == handleapi::INVALID_HANDLE_VALUE { - return Err(OpError::from(std::io::Error::last_os_error())); + return Err(ErrBox::last_os_error()); } else if handle.is_null() { - return Err(OpError::other("null handle".to_owned())); + return Err(ErrBox::new("ReferenceError", "null handle")); } let mut original_mode: DWORD = 0; if unsafe { consoleapi::GetConsoleMode(handle, &mut original_mode) } == FALSE { - return Err(OpError::from(std::io::Error::last_os_error())); + return Err(ErrBox::last_os_error()); } let new_mode = if is_raw { original_mode & !RAW_MODE_MASK @@ -127,7 +127,7 @@ pub fn op_set_raw( original_mode | RAW_MODE_MASK }; if unsafe { consoleapi::SetConsoleMode(handle, new_mode) } == FALSE { - return Err(OpError::from(std::io::Error::last_os_error())); + return Err(ErrBox::last_os_error()); } Ok(JsonOp::Sync(json!({}))) @@ -139,7 +139,7 @@ pub fn op_set_raw( let mut resource_table = isolate_state.resource_table.borrow_mut(); let resource_holder = resource_table.get_mut::<StreamResourceHolder>(rid); if resource_holder.is_none() { - return Err(OpError::bad_resource_id()); + return Err(ErrBox::bad_resource_id()); } if is_raw { @@ -152,10 +152,10 @@ pub fn op_set_raw( (f.as_raw_fd(), &mut metadata.tty.mode) } StreamResource::FsFile(None) => { - return Err(OpError::resource_unavailable()) + return Err(ErrBox::resource_unavailable()) } _ => { - return Err(OpError::other("Not supported".to_owned())); + return Err(ErrBox::not_supported()); } }; @@ -196,10 +196,10 @@ pub fn op_set_raw( (f.as_raw_fd(), &mut metadata.tty.mode) } StreamResource::FsFile(None) => { - return Err(OpError::resource_unavailable()); + return Err(ErrBox::resource_unavailable()); } _ => { - return Err(OpError::bad_resource_id()); + return Err(ErrBox::bad_resource_id()); } }; @@ -222,7 +222,7 @@ pub fn op_isatty( _state: &Rc<State>, args: Value, _zero_copy: &mut [ZeroCopyBuf], -) -> Result<JsonOp, OpError> { +) -> Result<JsonOp, ErrBox> { let args: IsattyArgs = serde_json::from_value(args)?; let rid = args.rid; @@ -269,7 +269,7 @@ pub fn op_console_size( state: &Rc<State>, args: Value, _zero_copy: &mut [ZeroCopyBuf], -) -> Result<JsonOp, OpError> { +) -> Result<JsonOp, ErrBox> { state.check_unstable("Deno.consoleSize"); let args: ConsoleSizeArgs = serde_json::from_value(args)?; let rid = args.rid; @@ -292,10 +292,7 @@ pub fn op_console_size( &mut bufinfo, ) == 0 { - // TODO (caspervonb) use GetLastError - return Err(OpError::other( - winapi::um::errhandlingapi::GetLastError().to_string(), - )); + return Err(ErrBox::last_os_error()); } Ok(ConsoleSize { @@ -313,7 +310,7 @@ pub fn op_console_size( unsafe { let mut size: libc::winsize = std::mem::zeroed(); if libc::ioctl(fd, libc::TIOCGWINSZ, &mut size as *mut _) != 0 { - return Err(OpError::from(std::io::Error::last_os_error())); + return Err(ErrBox::last_os_error()); } // TODO (caspervonb) return a tuple instead @@ -324,7 +321,7 @@ pub fn op_console_size( } } } - Err(_) => Err(OpError::bad_resource_id()), + Err(_) => Err(ErrBox::bad_resource_id()), })?; Ok(JsonOp::Sync(json!(size))) |