r8892 - /scripts/qa/DebianQA/Watch.pm
tincho-guest at users.alioth.debian.org
tincho-guest at users.alioth.debian.org
Tue Nov 6 07:24:53 UTC 2007
Author: tincho-guest
Date: Tue Nov 6 07:24:53 2007
New Revision: 8892
URL: http://svn.debian.org/wsvn/?sc=1&rev=8892
Log:
Fixed various problems wrt cpan
Modified:
scripts/qa/DebianQA/Watch.pm
Modified: scripts/qa/DebianQA/Watch.pm
URL: http://svn.debian.org/wsvn/scripts/qa/DebianQA/Watch.pm?rev=8892&op=diff
==============================================================================
--- scripts/qa/DebianQA/Watch.pm (original)
+++ scripts/qa/DebianQA/Watch.pm Tue Nov 6 07:24:53 2007
@@ -34,6 +34,9 @@
$force ||= 0;
debug("watch_download($force, (@pkglist))");
+ if($CFG{watch}{use_cpan}) {
+ cpan_download($force);
+ }
my $complete;
if(not @pkglist) {
$complete = 1;
@@ -101,7 +104,7 @@
} elsif(@result = grep( { not $_->[0] } @noerror)) {
$watch2{$pkg} = { upstream_ver => $result[0][2] }; # OK
} else {
- $watch2{$pkg} = { error => "MissingUpstream",
+ $watch2{$pkg} = { error => "NewerThanUpstream",
upstream_ver => $noerror[0][2] };
}
}
@@ -147,8 +150,11 @@
}
debug("uscan $dir $filter");
my @vers;
- unless($CFG{watch}{use_cpan} and $dir =~ $cpanregex
- and @vers = cpan_lookup($dir, $filter)) {
+ if($CFG{watch}{use_cpan} and $dir =~ $cpanregex) {
+ @vers = cpan_lookup($dir, $filter);
+ warn("CPAN lookup failed for $dir + $filter") unless(@vers);
+ }
+ unless(@vers) {
debug("Downloading $dir");
my $res = $ua->get($dir);
unless($res->is_success) {
@@ -172,7 +178,7 @@
eval "\$mangled[-1] =~ $_";
if($@) {
error("Invalid watchfile: $@");
- return "Invalid";
+ return("Invalid");
}
}
}
@@ -183,26 +189,29 @@
sub cpan_lookup($$) {
my($dir, $filter) = @_;
- return undef unless($dir =~ $cpanregex);
+ return () unless($dir =~ $cpanregex);
my $base = $1;
unless($base =~ s/.*(modules|authors).*//) {
- return undef;
+ return ();
}
$base = $1;
- my $cpan = cpan_download($base);
+ my $cpan = cpan_download()->{$base};
my $olddir = $dir;
$dir =~ s/$cpanregex//;
$dir =~ s{/+$}{};
$dir =~ s{^/+}{};
debug("Looking for $dir + $filter into CPAN $base cache");
- return undef unless(exists($cpan->{$dir}));
+ return () unless(exists($cpan->{$dir}));
return grep(defined, map({ $_ =~ $filter ? $1 : undef } @{$cpan->{$dir}}));
}
-sub cpan_download($) {
- my $base = shift;
- my $cpan = read_cache("cpan", "", 0);
- if($CFG{watch}{cpan_ttl} * 60 > time - find_stamp($cpan, $base)) {
- return $cpan->{$base};
+sub cpan_download(;$) {
+ my $force = shift;
+ my $cpan;
+ unless($force) {
+ $cpan = read_cache("cpan", "", 0);
+ if($CFG{watch}{cpan_ttl} * 60 > time - find_stamp($cpan, "")) {
+ return $cpan;
+ }
}
$cpan = {};
@@ -245,6 +254,6 @@
}
close $data;
update_cache("cpan", $cpan, "", 1);
- return $cpan->{$base};
+ return $cpan;
}
1;
More information about the Pkg-perl-cvs-commits
mailing list