From 28eab23842118e6fe7aa61c8dc8fb6219f53d1ac Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Tue, 25 Dec 2018 10:21:01 +0100 Subject: Make script logic testable by moving to main package Signed-off-by: Florian Pritz --- lib/App/ArchLinux/PackagerTools.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lib/App') 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 Ebluewind@xinu.atE -- cgit v1.2.3-24-g4f1b