[Collab-qa-commits] r791 - svnbuildstat/trunk/lib/SvnBuildStat
goneri-guest at alioth.debian.org
goneri-guest at alioth.debian.org
Thu Apr 17 11:38:11 UTC 2008
Author: goneri-guest
Date: 2008-04-17 11:38:10 +0000 (Thu, 17 Apr 2008)
New Revision: 791
Modified:
svnbuildstat/trunk/lib/SvnBuildStat/Common.pm
Log:
put back checkRepositoryentryWatchfile()
Modified: svnbuildstat/trunk/lib/SvnBuildStat/Common.pm
===================================================================
--- svnbuildstat/trunk/lib/SvnBuildStat/Common.pm 2008-04-16 16:40:50 UTC (rev 790)
+++ svnbuildstat/trunk/lib/SvnBuildStat/Common.pm 2008-04-17 11:38:10 UTC (rev 791)
@@ -17,6 +17,53 @@
$$changelogentry->repositoryentry_id->sourcepackage_id->name.'_'.$$changelogentry->version.".orig.tar.gz";
}
+# The name of this function sucks
+sub checkRepositoryentryWatchfile {
+ my ($repositoryentry) = shift;
+ my $cmd;
+
+ # TODO, no ini file access in a shared function
+ my $cfg = Config::IniFiles->new( -file => "../svnbuildstat.ini" ) or die "Can't load config file";
+ my $vcscache = $cfg->val('path', 'vcscache');
+ my $watchfile = $vcscache.'/'.$$repositoryentry->repository_id->id.$$repositoryentry->subdir.'/debian/watch';
+ return unless -f $watchfile;
+
+ my $majorrelease = $$repositoryentry->svndebrelease;
+ return unless $majorrelease;
+
+ $majorrelease =~ s/^\d+://;
+ $majorrelease =~ s/-[0-9A-Za-z\.~]*$//;
+ $majorrelease =~ s/dfsg.*//;
+ $majorrelease =~ s/\d+://;
+ $cmd = "uscan --package ".$$repositoryentry->sourcepackage_id->name." --dehs --upstream-version ".$majorrelease." --watchfile ".$watchfile;
+ my @uscan = `$cmd`;
+ return unless @uscan > 2; # empty output
+
+ my $tarballuri;
+ my $isuptodate = 'f';
+ my $iswatchfilebroken = 'f';
+ my $upstreamrelease;
+ foreach (@uscan) {
+ $tarballuri = $1 if (/^<upstream-url>(.+tar\.gz)<\/upstream-url>$/i);
+ $isuptodate = 't' if (/^<status>up to date<\/status>$/);
+ $upstreamrelease = $1 if (/^<upstream-version>(.+)<\/upstream-version>$/);
+ $iswatchfilebroken = 't' if (/^<errors>/);
+ }
+ $iswatchfilebroken = 't' unless $upstreamrelease;
+
+ $$repositoryentry->upstreamrelease($upstreamrelease);
+ $$repositoryentry->isuptodate($isuptodate);
+ $$repositoryentry->iswatchfilebroken($iswatchfilebroken);
+ if ($isuptodate eq 't' && !$$repositoryentry->isindebian && $tarballuri =~ /(\.tar\.gz|tgz)$/i) {
+ $$repositoryentry->tarballuri($tarballuri);
+ }
+ $$repositoryentry->lastwatchcheck('now');
+
+ $$repositoryentry->update();
+}
+
+
+
sub getTarballURLWithWatchfile {
my ($changelogentry) = shift;
More information about the Collab-qa-commits
mailing list