[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