diff --git a/src/backend/todo_per_backend.rs b/src/backend/todo_per_backend.rs index da3a597..02bb114 100644 --- a/src/backend/todo_per_backend.rs +++ b/src/backend/todo_per_backend.rs @@ -50,6 +50,7 @@ impl ToDoPerBackend { if packages.is_empty() { continue; } + let exit_status = func(&**backend, packages).with_context(|| { format!("{verb_continuous} packages for {}", backend.get_binary()) })?; @@ -62,10 +63,6 @@ impl ToDoPerBackend { Ok(()) } - pub(crate) fn is_empty(&self) -> bool { - self.0.iter().all(|(_, packages)| packages.is_empty()) - } - pub(crate) fn show(&self, keyword: Option<&str>) { for (backend, packages) in self.iter() { if packages.is_empty() { diff --git a/src/core.rs b/src/core.rs index 600b96c..446a939 100644 --- a/src/core.rs +++ b/src/core.rs @@ -171,7 +171,7 @@ impl Pacdef { fn clean_packages(mut self) -> Result<()> { let to_remove = self.get_unmanaged_packages(); - if to_remove.is_empty() { + if to_remove.nothing_to_do_for_all_backends() { println!("nothing to do"); return Ok(()); } diff --git a/src/review.rs b/src/review.rs index 615af0b..80870df 100644 --- a/src/review.rs +++ b/src/review.rs @@ -44,6 +44,7 @@ pub(crate) fn review( ) -> Result<()> { let mut reviews = ReviewsPerBackend::new(); let mut groups: Vec> = groups.into_iter().map(Rc::new).collect(); + groups.sort_unstable(); if todo_per_backend.nothing_to_do_for_all_backends() { @@ -136,6 +137,7 @@ fn ask_user_action_for_package() -> Result { _ => Ok(ReviewIntention::Invalid), } } + fn print_enumerated_groups(groups: &[Rc]) { for (i, group) in groups.iter().enumerate() { println!("{i}: {}", group.name); @@ -160,6 +162,7 @@ fn ask_group(groups: &[Rc]) -> Result>> { Ok(None) } } + #[derive(Debug)] struct Strategy { backend: Box,