diff --git a/ReadMe.md b/ReadMe.md
index c6e75b4f..d80ed5eb 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -1,3 +1,5 @@
+
+
### Ѵishap Oberon
[Ѵishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3)
@@ -26,10 +28,6 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry:
> when there is no longer anything to take away. (Antoine de Saint-Exupéry,
> translated by Lewis Galantière.)
-##### Build status
-
-
-
#### Installation
##### Prerequisites
diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl
index c67642e8..35a19045 100755
--- a/src/tools/make/buildall.pl
+++ b/src/tools/make/buildall.pl
@@ -56,32 +56,105 @@ while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";}
# # All builds have completed. Now scan the logs for pass/fail and build the passing report.
-#
-# my %status = ();
-# open(my $logs, "/tmp/buildall.log") // die "Couldn't open combined build log.";
-# while (<$logs>) {
-# if (/^([^ ]+) ([^ ]+) --- Branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) confidence tests passed ---/) {
-# $status{$1} = [$2, $3, $4, $5, $6];
-# }
-# }
-# close(my $logs);
-#
-#
-# sub svgtext {
-# my ($f, $x, $y, $msg) = @_;
-# print($f "";
-# print($f $msg);
-# print($f "\n");
-# }
-#
-#
-# open(my $svg, ">passing.svg") // dir "Could not create passing.svg.");
-# print $svg '\n';
+
+
+my %status = ();
+
+
+sub parselog {
+ my ($fn) = @_;
+ #print "Parsing log $fn\n";
+ my $date = "";
+ my $time = "";
+ my $branch = "";
+ my $os = "";
+ my $compiler = "";
+ my $datamodel = "";
+ my $compilerok = "";
+ my $libraryok = "";
+ my $checksum = "";
+ my $tests = "";
+ open(my $log, $fn) // die "Couldn't open build log $fn.";
+ while (<$log>) {
+ if (/^([0-9\/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;}
+ if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) {
+ ($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5);
+ }
+ if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";}
+ if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";}
+ if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";}
+ if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Match";}
+ if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";}
+ if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";}
+ }
+ close($log);
+ my $key = "$os-$compiler-$datamodel";
+ if ($key ne "") {
+ $status{$key} = [$date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests];
+ }
+}
+
+opendir DIR, "log" // die "Could not open log directory.";
+my @logs = readdir DIR;
+closedir DIR;
+
+for my $logname (sort @logs) {
+ $logname = "log/" . $logname;
+ #print "Consider $logname\n";
+ if (-f $logname) {parselog($logname);}
+}
+
+my $emsperline = 1.2;
+
+sub svgtext {
+ my ($f, $x, $y, $colour, $msg) = @_;
+ print $f '';
+ print $f $msg;
+ print $f "\n";
+}
+
+my $rows = keys %status;
+
+open(my $svg, ">build-status.svg") // die "Could not create build-status.svg.";
+print $svg '\n";
+
+system 'scp -p build-status.svg dave@hub:/var/www';
diff --git a/src/tools/make/pt.pl b/src/tools/make/pt.pl
index 0d5058f8..0c3243c1 100755
--- a/src/tools/make/pt.pl
+++ b/src/tools/make/pt.pl
@@ -11,6 +11,7 @@ my %status = ();
sub parselog {
my ($fn) = @_;
+ #print "Parsing log $fn\n";
my $date = "";
my $time = "";
my $branch = "";
@@ -23,29 +24,31 @@ sub parselog {
my $tests = "";
open(my $log, $fn) // die "Couldn't open build log $fn.";
while (<$log>) {
- if (/^([0-9/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;}
+ if (/^([0-9\/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;}
if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) {
($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5);
}
- if (/^--- Compiler build successfull ---$/) {$compilerok = "Built";}
- if (/^--- Library build successfull ---$/) {$libraryok = "Built";}
- if (/^--- Confidence tests passed ---$/) {$tests = "Passed";}
- if (/^--- Object file checksums match ---$/) {$checksum = "Match";}
- if (/^--- Object file checksum mismatch ---$/) {$checksum = "Changed";}
- if (/^--- Object files checksummed ---$/) {$checksum = "New";}
+ if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";}
+ if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";}
+ if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";}
+ if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Match";}
+ if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";}
+ if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";}
}
close($log);
my $key = "$os-$compiler-$datamodel";
if ($key ne "") {
- status{$key} = [$date, $time, $os, %compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests];
+ $status{$key} = [$date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests];
}
}
-opendir DIR, "log" // die "Could not openlog directory.";
+opendir DIR, "log" // die "Could not open log directory.";
my @logs = readdir DIR;
closedir DIR;
for my $logname (sort @logs) {
+ $logname = "log/" . $logname;
+ #print "Consider $logname\n";
if (-f $logname) {parselog($logname);}
}
@@ -88,7 +91,7 @@ svgtext($svg, $col7, 0, "#e0e0e0", "Tests");
my $i=1;
for my $key (sort keys %status) {
- my ($date, $time, $os, %compiler, $datamodel,
+ my ($date, $time, $os, $compiler, $datamodel,
$branch, $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}};
svgtext($svg, $col1, $i, "#c0c0c0", $os);
svgtext($svg, $col2, $i, "#c0c0c0", $compiler);