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,20 +90,30 @@ 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());
for package in packages {
println!(" {package}");
}
}
}
println!("{}", b.get_section()); fn get_unmanaged_packages(self) -> ToDoPerBackend {
for p in unmanaged { let mut result = ToDoPerBackend::new();
println!(" {p}");
} 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.
@@ -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())