--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/stats Wed Sep 23 22:31:26 2015 +0200
@@ -0,0 +1,54 @@
+#! /usr/bin/perl
+use 5.14.0;
+use strict;
+use warnings;
+use Template;
+use List::Util qw(max);
+
+my %fail;
+
+foreach my $file (glob "out*/log.*") {
+ my ($name, $platform) = $file =~ /out-?(.*?)\/log\.(.*)/;
+ my ($os) = $platform =~ /(^.*?)-/;
+ $_ = do { local @ARGV = $file; local $/ = undef; <> };
+ s/
/\n/g;
+ my ($version) = /^Exim version (\S+)/mi;
+ my ($ssl) =
+ /^Support for: .*\bGnuTLS/mi ? 'GnuTLS'
+ : /^Support for: .*\bOpenSSL\b/mi ? 'OpenSSL'
+ : 'No SSL';
+
+ $fail{$os}{$ssl}{$version} = {};
+
+ foreach (/^\*{2}.*\/(\d+)\s+failed.*?=+/mg) {
+ $fail{$os}{$ssl}{$version}{_failed}{$_} = 1;
+ $fail{$os}{$ssl}{_failed}{$_} = 1;
+ }
+}
+
+my $os_len = max map { length } keys %fail;
+my $ssl_len = max map { length } map { keys %$_ } values %fail;
+my $version_len =
+ max map { length } map { keys %$_ } map { values %$_ } values %fail;
+
+foreach my $os (sort keys %fail) {
+ foreach my $ssl (sort keys %{ $fail{$os} }) {
+ foreach my $version (grep { !/^_/ } sort keys %{ $fail{$os}{$ssl} }) {
+ printf "%*s %*s %*s: ",
+ -$os_len => $os,
+ -$ssl_len => $ssl,
+ -$version_len => $version;
+
+ foreach my $failed (sort { $a <=> $b }
+ keys %{ $fail{$os}{$ssl}{_failed} })
+ {
+ printf "%4s ",
+ $fail{$os}{$ssl}{$version}{_failed}{$failed} ? $failed : '-';
+ }
+
+ print "\n";
+ }
+ print "\n";
+ }
+}
+