From 2ff6a1741dcee0610567d372670fc4f648db6005 Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Thu, 2 Feb 2023 15:25:45 +0100 Subject: [PATCH] improve formatting of 'show' --- src/core.rs | 12 ++++++++++++ src/grouping/group.rs | 2 +- src/search.rs | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/core.rs b/src/core.rs index e68c117..9f1c859 100644 --- a/src/core.rs +++ b/src/core.rs @@ -188,12 +188,24 @@ impl Pacdef { fn show_group_content(&self, groups: &ArgMatches) -> Result<()> { let mut iter = groups.get_many::("group").unwrap().peekable(); + let show_more_than_one_group = iter.size_hint().0 > 1; + while let Some(arg_group) = iter.next() { let group = self .groups .iter() .find(|g| g.name == *arg_group) .ok_or_else(|| anyhow!("group {} not found", *arg_group))?; + + if show_more_than_one_group { + let name = &group.name; + println!("{name}"); + for _ in 0..name.len() { + print!("-"); + } + println!(); + } + println!("{group}"); if iter.peek().is_some() { println!(); diff --git a/src/grouping/group.rs b/src/grouping/group.rs index 4aa91fd..b7b40fb 100644 --- a/src/grouping/group.rs +++ b/src/grouping/group.rs @@ -136,7 +136,7 @@ impl Display for Group { while let Some(section) = iter.next() { section.fmt(f)?; if iter.peek().is_some() { - f.write_char('\n')?; + f.write_str("\n\n")?; } } Ok(()) diff --git a/src/search.rs b/src/search.rs index 3166065..bac6eff 100644 --- a/src/search.rs +++ b/src/search.rs @@ -2,7 +2,7 @@ use std::collections::HashSet; use std::iter::Peekable; use std::vec::IntoIter; -use anyhow::{Context, Result}; +use anyhow::{bail, Context, Result}; use clap::ArgMatches; use regex::Regex; @@ -27,6 +27,10 @@ pub(crate) fn search_packages(args: &ArgMatches, groups: &HashSet) -> Res } } + if vec.is_empty() { + bail!("no packages matching query") + } + print_triples(vec); Ok(())