From 5cc41edd0119ad982b6805e5b208053b748a65f5 Mon Sep 17 00:00:00 2001 From: Slaven Rezic Date: Sun, 8 Apr 2012 22:02:52 +0200 Subject: [PATCH] * may work with a missing reports file --- utils/cpan_allpackages | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/utils/cpan_allpackages b/utils/cpan_allpackages index 9c25c32..855b1d3 100755 --- a/utils/cpan_allpackages +++ b/utils/cpan_allpackages @@ -251,12 +251,13 @@ sub parse_reports_sent { # takes ~3 seconds my %dist; my $cpan_reporter_dir = $ENV{PERL_CPAN_REPORTER_DIR} || "$ENV{HOME}/.cpanreporter"; my $reports_sent_file = "$cpan_reporter_dir/reports-sent.db"; - open my $fh, $reports_sent_file - or die "Can't open $reports_sent_file: $!"; - while(<$fh>) { - next if /^#/; - chomp; - if (my($phase, $action, $dist, $perl, $arch) = + if (!open my $fh, $reports_sent_file) { + warn "Can't open $reports_sent_file: $!, skip this part...\n"; + } else { + while(<$fh>) { + next if /^#/; + chomp; + if (my($phase, $action, $dist, $perl, $arch) = $_ =~ m{^ (\S+)\s+ (\S+)\s+ @@ -264,21 +265,22 @@ sub parse_reports_sent { # takes ~3 seconds \(([^\)]+)\)\s+ (.+) $}x) { - my $d = CPAN::DistnameInfo->new($dist.".tar.gz"); - my $maturity = $d->maturity; - if (my $old_d = $dist{$maturity}->{$d->dist}->{$perl}->{$arch}) { - if (safe_version($d->version) < safe_version($old_d->{dist}->version)) { - next; - } elsif (safe_version($d->version) == safe_version($old_d->{dist}->version)) { - $dist{$maturity}->{$d->dist}->{$perl}->{$arch}->{result} .= ", $phase $action"; - next; + my $d = CPAN::DistnameInfo->new($dist.".tar.gz"); + my $maturity = $d->maturity; + if (my $old_d = $dist{$maturity}->{$d->dist}->{$perl}->{$arch}) { + if (safe_version($d->version) < safe_version($old_d->{dist}->version)) { + next; + } elsif (safe_version($d->version) == safe_version($old_d->{dist}->version)) { + $dist{$maturity}->{$d->dist}->{$perl}->{$arch}->{result} .= ", $phase $action"; + next; + } } + $dist{$maturity}->{$d->dist}->{$perl}->{$arch} = {dist => $d, + result => "$phase $action", + }; + } else { + warn "Cannot parse line $_"; } - $dist{$maturity}->{$d->dist}->{$perl}->{$arch} = {dist => $d, - result => "$phase $action", - }; - } else { - warn "Cannot parse line $_"; } } \%dist;