add error GroupFileNotFound

This commit is contained in:
steven-omaha
2023-02-24 15:33:26 +01:00
parent 9fa9f90677
commit ef937ca146
3 changed files with 10 additions and 6 deletions
+6 -5
View File
@@ -28,15 +28,16 @@ fn main() -> ExitCode {
/// Skip printing the error chain when searching packages yields no results,
/// otherwise report error chain.
#[allow(clippy::option_if_let_else)]
fn handle_final_result(result: Result<()>) -> ExitCode {
match result {
Ok(_) => ExitCode::SUCCESS,
Err(ref e) => {
let root_e = e.root_cause().downcast_ref();
match root_e {
Some(pacdef_core::Error::NoPackagesFound) => ExitCode::FAILURE,
Some(_) => result.context("unknown pacdef error type").report(),
None => result.report(),
if let Some(root_error) = e.root_cause().downcast_ref::<pacdef_core::Error>() {
eprintln!("{root_error}");
ExitCode::FAILURE
} else {
result.report()
}
}
}
+1 -1
View File
@@ -340,7 +340,7 @@ fn get_group_file_paths_matching_args<'a>(
Some(group) => {
result.push(group.path.as_path());
}
None => bail!("group file {} not found", file),
None => bail!(crate::errors::Error::GroupFileNotFound(file.clone())),
}
}
+3
View File
@@ -9,6 +9,8 @@ pub enum Error {
NoPackagesFound,
/// Config file not found.
ConfigFileNotFound,
/// Group file not found.
GroupFileNotFound(String),
}
impl Display for Error {
@@ -16,6 +18,7 @@ impl Display for Error {
match self {
Self::NoPackagesFound => f.write_str("no packages matching query"),
Self::ConfigFileNotFound => f.write_str("config file not found"),
Self::GroupFileNotFound(name) => f.write_str(&format!("group file '{name}' not found")),
}
}
}