Add tests for build_status_from_logs
[build-farm.git] / import-and-analyse.pl
index 54056631694a69dee104283c938d70e158d66170..84663d15f6dab8edcb10975d14d84008685ff1c9 100755 (executable)
@@ -10,6 +10,7 @@ use Digest::SHA1 qw(sha1_hex);
 use strict;
 use util;
 use File::stat;
+use File::Copy;
 use Getopt::Long;
 use hostdb;
 use data;
@@ -206,6 +207,7 @@ foreach my $host (@hosts) {
     foreach my $tree (keys %trees) {
        foreach my $compiler (@compilers) {
            my $rev;
+           my $commit;
            my $retry = 0;
            if ($opt_verbose >= 2) {
                print "Looking for a log file for $host $compiler $tree...\n";
@@ -269,8 +271,6 @@ foreach my $host (@hosts) {
                
                ($rev) = ($data =~ /BUILD REVISION: ([^\n]+)/);
 
-               my $commit;
-               
                if ($data =~ /BUILD COMMIT REVISION: (.*)/) {
                    $commit = $1;
                } else {
@@ -394,7 +394,11 @@ foreach my $host (@hosts) {
                unlink $log_rev;
                unlink $err_rev;
                link($logfn . ".log", $log_rev) || die "Failed to link $logfn to $log_rev";
-               link($logfn . ".err", $err_rev) || die "Failed to link $logfn to $err_rev";
+
+               # this prevents lots of links building up with err files
+               copy($logfn . ".err", $err_rev) || die "Failed to copy $logfn to $err_rev";
+               unlink($logfn . ".err");
+               link($err_rev, $logfn . ".err");
            }
        }
     }