diff --git a/crates/main/main.rs b/crates/main/main.rs index 1afc302..5b4f357 100644 --- a/crates/main/main.rs +++ b/crates/main/main.rs @@ -27,17 +27,11 @@ 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) => { - if let Some(pacdef_err) = e.root_cause().downcast_ref::() { - match pacdef_err { - pacdef_core::Error::NoPackagesFound => (), - pacdef_core::Error::NoGroupFilesInArguments => eprintln!("{pacdef_err}"), - _ => eprintln!("unexpected error"), - }; + if e.root_cause().to_string() == pacdef_core::Error::NoPackagesFound.to_string() { ExitCode::FAILURE } else { result.report() diff --git a/crates/pacdef_core/src/args.rs b/crates/pacdef_core/src/args.rs index 9b6997a..5f2894e 100644 --- a/crates/pacdef_core/src/args.rs +++ b/crates/pacdef_core/src/args.rs @@ -45,8 +45,7 @@ fn get_group_cmd() -> Command { .short('e') .long("edit") .help("edit the new group files after creation") - .action(clap::ArgAction::SetTrue) - .num_args(0), + .action(clap::ArgAction::SetTrue), ) .arg(Arg::new("groups").num_args(1..).required(true)) .visible_alias("n"); diff --git a/crates/pacdef_core/src/core.rs b/crates/pacdef_core/src/core.rs index f61d341..4562402 100644 --- a/crates/pacdef_core/src/core.rs +++ b/crates/pacdef_core/src/core.rs @@ -315,9 +315,8 @@ fn get_group_file_paths_matching_args<'a>( groups: &'a HashSet, ) -> Result> { let file_names: Vec<_> = arg_match - .get_many::("groups") - .context("getting groups from args") - .map_err(|_| crate::errors::Error::NoGroupFilesInArguments)? + .get_many::("group") + .context("getting groups from args")? .collect(); let name_group_map: HashMap<&str, &Group> = diff --git a/crates/pacdef_core/src/errors.rs b/crates/pacdef_core/src/errors.rs index 0f19be0..e597007 100644 --- a/crates/pacdef_core/src/errors.rs +++ b/crates/pacdef_core/src/errors.rs @@ -7,15 +7,12 @@ use std::fmt::Display; pub enum Error { /// Package search yields no results. NoPackagesFound, - /// No group files were provided as arguments. - NoGroupFilesInArguments, } impl Display for Error { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Self::NoPackagesFound => f.write_str("no packages matching query"), - Self::NoGroupFilesInArguments => f.write_str("no group files in arguments"), } } }