r2781 - people/goneri/SvnBuildStat-WWW/script

Gonéri Le Bouder goneri-guest at alioth.debian.org
Thu May 31 22:03:47 UTC 2007


Author: goneri-guest
Date: 2007-05-31 22:03:47 +0000 (Thu, 31 May 2007)
New Revision: 2781

Modified:
   people/goneri/SvnBuildStat-WWW/script/svnbuildstat_import-new-report.pl
Log:
try to make the import more robust


Modified: people/goneri/SvnBuildStat-WWW/script/svnbuildstat_import-new-report.pl
===================================================================
--- people/goneri/SvnBuildStat-WWW/script/svnbuildstat_import-new-report.pl	2007-05-31 21:49:57 UTC (rev 2780)
+++ people/goneri/SvnBuildStat-WWW/script/svnbuildstat_import-new-report.pl	2007-05-31 22:03:47 UTC (rev 2781)
@@ -5,9 +5,10 @@
 use lib '/home/sites/svnbuildstat.debian.net/svnbuildstat/lib';
 use File::Glob ':globally';
 
+use Encode;
 use File::stat;
+use File::Copy;
 
-use Encode;
 
 use SvnBuildStat::Config;
 use SvnBuildStat::Schema;
@@ -72,13 +73,20 @@
 }
 # Load the new report
 foreach my $reporttarball (@reporttarball) {
-  next unless $reporttarball =~ /.*\/(.+)_(\d+)_(.+)_(.+)\.tar$/;
+
+  my $st = stat($reporttarball);
+  if ((!$reporttarball =~ /.*\/(.+)_(\d+)_(.+)_(.+)\.tar$/) ||
+  !$st || ($st->mtime < time - 3600)) {
+  move($reporttarball, $rejecteddir);
+
+    next;
+  }
   print localtime().": new report ".$reporttarball."\n";
   `cd $workdir && tar xf $reporttarball`;
 
   my %report;
   if (!open INFO, "<$workdir/report/info") {
-    `cp $reporttarball $rejecteddir`;
+    move($reporttarball, $rejecteddir);
     `rm -r $workdir/report`;
     next;
   }
@@ -107,7 +115,6 @@
     arch => $report{arch});
   my $arch = $schema->resultset('Arch')->find_or_create(name => $report{arch});
 
-  $package->update;
 
   my $build = $schema->resultset('Build')->find_or_create({
       package_id => $package->id,
@@ -181,6 +188,18 @@
     }
   }
 
+  # Update package rev just in case it'd been updated during the build
+  my $svnbase = $package->uri;
+  foreach (`LC_ALL=C svn info $svnbase`) {
+    if (/Last Changed Rev:\ (\d+)/) {
+      $package->rev($1); 
+      last;
+    }
+  }
+
+  $package->update;
+  $package->update;
+
   my @linda;
   foreach (keys %linda) {
     my $iserror = ($linda{$_} eq "E")?1:0;
@@ -203,8 +222,8 @@
 
   $build->update;
 
+  my $lockfile = $package->name."_".$report{svn_rev}."_".$report{source}.".lock";
   foreach (@lockfile) {
-    my $lockfile = $package->name."_".$report{svn_rev}."_".$report{source}.".lock";
     if (/$lockfile/) {
       unlink ($_) or warn "Can't unlink $_\n";
     }




More information about the Pkg-games-commits mailing list