From 94ec85b051896ba028e475d6d7c8eb1d9e359ac4 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 16 Dec 2018 23:01:17 +0100 Subject: Move CPAN 02packages code to dedicated class Signed-off-by: Florian Pritz --- lib/App/ArchLinux/PackagerTools/CPAN.pm | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'lib/App/ArchLinux/PackagerTools/CPAN.pm') diff --git a/lib/App/ArchLinux/PackagerTools/CPAN.pm b/lib/App/ArchLinux/PackagerTools/CPAN.pm index e549408..b992a8f 100644 --- a/lib/App/ArchLinux/PackagerTools/CPAN.pm +++ b/lib/App/ArchLinux/PackagerTools/CPAN.pm @@ -5,11 +5,12 @@ use autodie; use CPAN::DistnameInfo; use Carp; use Function::Parameters; -use IPC::Run qw(run); use Log::Any qw($log); use Syntax::Keyword::Try; use version; +use App::ArchLinux::PackagerTools::CPAN::PackagesDetailsFetcher; + =head1 NAME App::ArchLinux::PackagerTools::CPAN - Methods to interact with CPAN @@ -37,6 +38,7 @@ Returns a new instance. =cut method new($class: $deps = {}) { + $deps->{packages_details_fetcher} //= App::ArchLinux::PackagerTools::CPAN::PackagesDetailsFetcher->new(); return $class->new_no_defaults($deps); } @@ -133,20 +135,7 @@ Set up the internal index of CPAN distributions method _build_dist_index() { $log->debug("Fetching CPAN modules index"); - my $out; - my $use_cpanplus_index = 1; - # TODO put this in a dedicated module for testing - if ($use_cpanplus_index) { - # This is mostly for development so we don't go over the network on each run. - my $packages_file = "$ENV{HOME}/.cpanplus/02packages.details.txt.gz"; - run ['zcat', $packages_file], \undef, \$out or die $log->error("Failed to fetch and uncompress CPAN module index: $?")."\n"; - } else { - # TODO cache the details file locally - # TODO when we have a cache of this, remove the $use_cpanplus_index part since that is worse than having our own cache - # TODO make the cpan mirror configurable - run [qw(curl -s ), "https://cpan.metacpan.org/modules/02packages.details.txt.gz"], '|', ['zcat'], \$out or die $log->error("Failed to fetch and uncompress CPAN module index: $?")."\n"; - } - + my $out = $self->{deps}->{packages_details_fetcher}->get_packages_data();; my %seen; my $line_number = 0; $log->debug("Building index..."); @@ -196,6 +185,7 @@ method _build_dist_index() { } } } + $log->debugf("CPAN modules index contains %s dists", scalar(keys $self->{dists}->%*)); } 1; -- cgit v1.2.3-24-g4f1b