#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum DaemonizeError {
#[error("validation error: {0}")]
ValidationError(String),
#[error("program not found: {0}")]
ProgramNotFound(String),
#[error("user not found: {0}")]
UserNotFound(String),
#[error("group not found: {0}")]
GroupNotFound(String),
#[error("lock conflict: {0}")]
LockConflict(String),
#[error("lockfile error: {0}")]
LockfileError(String),
#[error("fork failed: {0}")]
ForkFailed(String),
#[error("setsid failed: {0}")]
SetsidFailed(String),
#[error("chdir failed: {0}")]
ChdirFailed(String),
#[error("permission denied: {0}")]
PermissionDenied(String),
#[error("pidfile error: {0}")]
PidfileError(String),
#[error("output file error: {0}")]
OutputFileError(String),
#[error("chown error: {0}")]
ChownError(String),
#[error("exec failed: {0}")]
ExecFailed(String),
}
impl DaemonizeError {
pub fn exit_code(&self) -> u8 {
match self {
DaemonizeError::ValidationError(_) => 64, DaemonizeError::ProgramNotFound(_) => 66, DaemonizeError::UserNotFound(_) => 67, DaemonizeError::GroupNotFound(_) => 67, DaemonizeError::LockConflict(_) => 69, DaemonizeError::LockfileError(_) => 73, DaemonizeError::ForkFailed(_) => 71, DaemonizeError::SetsidFailed(_) => 71, DaemonizeError::ChdirFailed(_) => 71, DaemonizeError::PermissionDenied(_) => 77, DaemonizeError::PidfileError(_) => 73, DaemonizeError::OutputFileError(_) => 73, DaemonizeError::ChownError(_) => 73, DaemonizeError::ExecFailed(_) => 71, }
}
}