c97eafab29
- Remove Python-based test framework, Dockerfiles, and runner scripts - Add bare subcommand for standalone pipeline stage execution - Implement unified worker mode and error module - Refactor NotificationConfig to support YAML string keys - Add dummy internal plugin and clean up mail template
31 lines
772 B
Rust
31 lines
772 B
Rust
use thiserror::Error;
|
|
use workshop_engine::HasExitCode;
|
|
|
|
#[derive(Error, Debug)]
|
|
pub enum CliError {
|
|
#[error("{0}")]
|
|
Prebake(#[from] crate::prebake::error::PrebakeError),
|
|
#[error("{0}")]
|
|
Bake(#[from] crate::bake::error::BakeError),
|
|
#[error("{0}")]
|
|
Finalize(#[from] crate::finalize::FinalizeError),
|
|
#[error("{0}")]
|
|
General(anyhow::Error),
|
|
}
|
|
|
|
impl From<anyhow::Error> for CliError {
|
|
fn from(e: anyhow::Error) -> Self {
|
|
CliError::General(e)
|
|
}
|
|
}
|
|
impl CliError {
|
|
pub fn exit_code(&self) -> i32 {
|
|
match self {
|
|
CliError::Prebake(e) => e.exit_code(),
|
|
CliError::Bake(e) => e.exit_code(),
|
|
CliError::Finalize(e) => e.exit_code(),
|
|
CliError::General(_) => 1,
|
|
}
|
|
}
|
|
}
|