summaryrefslogtreecommitdiffstats
path: root/lib/App/ArchLinux/PackagerTools.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/App/ArchLinux/PackagerTools.pm')
-rw-r--r--lib/App/ArchLinux/PackagerTools.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/App/ArchLinux/PackagerTools.pm b/lib/App/ArchLinux/PackagerTools.pm
index 83b357a..46885d5 100644
--- a/lib/App/ArchLinux/PackagerTools.pm
+++ b/lib/App/ArchLinux/PackagerTools.pm
@@ -157,6 +157,25 @@ method filter_by_maintainer($packages) {
return [grep { any {$allowed_maintainers->{$_->{name}}} $_->{maintainers}->@*} $packages->@*];
}
+=head3 get_filtered_updateable_packages
+
+ my $pkgs = $app->get_filtered_updateable_packages();
+
+High-level method that returns a list of packages from the repository that have
+updates available. The list is filtered to only include packages of allowed
+maintainers.
+
+=cut
+
+method get_filtered_updateable_packages() {
+ my $dists = $self->get_distributions_in_repo();
+ my $dist_names = [map {$_->{dist_name}} $dists->@*];
+ my $updateable = $self->get_updateable_packages($dist_names);
+ my $pkgs = $self->add_maintainers($updateable);
+ my $filtered_pkgs = $self->filter_by_maintainer($pkgs);
+ return $filtered_pkgs;
+}
+
=head1 LICENSE
Copyright (C) 2018 Florian Pritz E<lt>bluewind@xinu.atE<gt>