From 42d318298ccc4ac7741b43d2646bc85b1c4f0eec Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Tue, 10 Jan 2023 18:50:17 +0100 Subject: [PATCH] add showing group content (WIP) --- src/action.rs | 1 + src/args.rs | 6 ++++++ src/core.rs | 9 +++++++++ 3 files changed, 16 insertions(+) diff --git a/src/action.rs b/src/action.rs index d399bd2..8820d42 100644 --- a/src/action.rs +++ b/src/action.rs @@ -1,6 +1,7 @@ pub(crate) const CLEAN: &str = "clean"; pub(crate) const EDIT: &str = "edit"; pub(crate) const GROUPS: &str = "groups"; +pub(crate) const SHOW: &str = "show"; pub(crate) const SYNC: &str = "sync"; pub(crate) const UNMANAGED: &str = "unmanaged"; pub(crate) const VERSION: &str = "version"; diff --git a/src/args.rs b/src/args.rs index 970e96d..cb1d219 100644 --- a/src/args.rs +++ b/src/args.rs @@ -16,6 +16,12 @@ fn get_arg_parser() -> Command<'static> { .arg(Arg::new("group").multiple_values(true)), ) .subcommand(Command::new(GROUPS).about("show names of imported groups")) + .subcommand( + Command::new(SHOW) + .about("show packages under an imported group") + .arg_required_else_help(true) + .arg(Arg::new("group").multiple_values(true)), + ) .subcommand(Command::new(SYNC).about("install packages from all imported groups")) .subcommand( Command::new(UNMANAGED) diff --git a/src/core.rs b/src/core.rs index a665128..70dfe73 100644 --- a/src/core.rs +++ b/src/core.rs @@ -29,6 +29,7 @@ impl Pacdef { self.edit_group_files(groups).context("editing group files") } Some((action::GROUPS, _)) => Ok(self.show_groups()), + Some((action::SHOW, _)) => Ok(self.show_packages_under_group()), Some((action::SYNC, _)) => Ok(self.install_packages()), Some((action::UNMANAGED, _)) => Ok(self.show_unmanaged_packages()), Some((action::VERSION, _)) => Ok(self.show_version()), @@ -167,6 +168,14 @@ impl Pacdef { backend.remove_packages(packages); } } + + fn show_packages_under_group(&self) { + let groups = self.args.get_many::("group").unwrap(); + for arg_group in groups { + let group = self.groups.iter().find(|g| g.name == *arg_group).unwrap(); + println!("{group}"); + } + } } fn show_error(error: anyhow::Error, backend: Box) {