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