refactor show_unmanaged_packages

This commit is contained in:
Dr. Matthias Ratajczak
2023-01-10 14:35:29 +01:00
parent a55f2db743
commit e860b27523
+22 -12
View File
@@ -90,22 +90,32 @@ impl Pacdef {
println!("pacdef, version: {}", env!("CARGO_PKG_VERSION")) println!("pacdef, version: {}", env!("CARGO_PKG_VERSION"))
} }
pub(crate) fn show_unmanaged_packages(self) { fn show_unmanaged_packages(self) {
for mut b in Backends::iter() { let unmanaged_per_backend = &self.get_unmanaged_packages();
b.load(&self.groups);
let unmanaged = b.get_unmanaged_packages_sorted(); for (backend, packages) in unmanaged_per_backend.iter() {
if unmanaged.is_empty() { if packages.is_empty() {
continue; continue;
} }
println!("{}", backend.get_section());
println!("{}", b.get_section()); for package in packages {
for p in unmanaged { println!(" {package}");
println!(" {p}");
} }
} }
} }
fn get_unmanaged_packages(self) -> ToDoPerBackend {
let mut result = ToDoPerBackend::new();
for mut backend in Backends::iter() {
backend.load(&self.groups);
let unmanaged = backend.get_unmanaged_packages_sorted();
result.push((backend, unmanaged));
}
result
}
// /// Returns a `Vec` of alphabetically sorted unmanaged packages. // /// Returns a `Vec` of alphabetically sorted unmanaged packages.
// pub(crate) fn get_unmanaged_packages(&mut self) -> Vec<Package> { // pub(crate) fn get_unmanaged_packages(&mut self) -> Vec<Package> {
// let managed = self.take_packages_as_set(); // let managed = self.take_packages_as_set();
@@ -154,9 +164,9 @@ impl ToDoPerBackend {
self.0.push(item); self.0.push(item);
} }
// fn iter(&self) -> impl Iterator<Item = &(Box<dyn Backend>, Vec<Package>)> { fn iter(&self) -> impl Iterator<Item = &(Box<dyn Backend>, Vec<Package>)> {
// self.0.iter() self.0.iter()
// } }
fn nothing_to_do_for_all_backends(&self) -> bool { fn nothing_to_do_for_all_backends(&self) -> bool {
self.0.iter().all(|(_, diff)| diff.is_empty()) self.0.iter().all(|(_, diff)| diff.is_empty())