From 6a05d3588c6dfe7af9ed2a12b3a1dae06678a5fd Mon Sep 17 00:00:00 2001 From: asonix Date: Sat, 15 Jul 2023 14:41:33 -0500 Subject: [PATCH] Add permissions error on Process --- src/process.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/process.rs b/src/process.rs index e2812da..f58ba6a 100644 --- a/src/process.rs +++ b/src/process.rs @@ -44,9 +44,12 @@ pin_project_lite::pin_project! { #[derive(Debug, thiserror::Error)] pub(crate) enum ProcessError { - #[error("Required command {0} not found")] + #[error("Required command {0} not found, make sure it exists in pict-rs' $PATH")] NotFound(String), + #[error("Cannot run command {0} due to invalid permissions on binary, make sure the pict-rs user has permission to run it")] + PermissionDenied(String), + #[error("Reached process spawn limit")] LimitReached, @@ -66,6 +69,9 @@ impl Process { Ok(this) => Ok(this), Err(e) => match e.kind() { std::io::ErrorKind::NotFound => Err(ProcessError::NotFound(command.to_string())), + std::io::ErrorKind::PermissionDenied => { + Err(ProcessError::PermissionDenied(command.to_string())) + } std::io::ErrorKind::WouldBlock => Err(ProcessError::LimitReached), _ => Err(ProcessError::Other(e)), },