1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum CliError {
5 #[error("IO error: {0}")]
6 Io(#[from] std::io::Error),
7
8 #[error("Configuration error: {0}")]
9 ConfigValidator(#[from] lmrc_config_validator::ConfigError),
10
11 #[error("Configuration error: {0}")]
12 Config(String),
13
14 #[allow(dead_code)]
15 #[error("Workspace error: {0}")]
16 Workspace(String),
17
18 #[error("Prompt error: {0}")]
19 Prompt(#[from] inquire::InquireError),
20
21 #[allow(dead_code)]
22 #[error("Generation error: {0}")]
23 Generation(String),
24
25 #[allow(dead_code)]
26 #[error("Invalid path: {0}")]
27 InvalidPath(String),
28
29 #[error("Project already exists at: {0}")]
30 ProjectExists(String),
31
32 #[allow(dead_code)]
33 #[error("Pipeline error: {0}")]
34 Pipeline(String),
35
36 #[allow(dead_code)]
37 #[error("IO error: {0}")]
38 IoError(String),
39
40 #[error("Command execution error: {0}")]
41 Command(String),
42
43 #[error("Missing environment variable: {0}")]
44 MissingEnvironmentVariable(String),
45
46 #[error("Infrastructure error: {0}")]
47 Infrastructure(String),
48}
49
50pub type Result<T> = std::result::Result<T, CliError>;