Move lastpass loading to a sub in FATE.pm
authorMans Rullgard <mans@mansr.com>
Sat, 29 Jan 2011 22:27:45 +0000 (22:27 +0000)
committerMans Rullgard <mans@mansr.com>
Sat, 29 Jan 2011 22:27:45 +0000 (22:27 +0000)
FATE.pm
report.cgi

diff --git a/FATE.pm b/FATE.pm
index e5d45d5..3ffea1f 100644 (file)
--- a/FATE.pm
+++ b/FATE.pm
@@ -11,7 +11,7 @@ BEGIN {
     $VERSION = 0.1;
     @ISA     = qw/Exporter/;
     @EXPORT  = qw/split_header split_config split_rec parse_date agestr
-                  split_stats load_summary load_report
+                  split_stats load_summary load_report load_lastpass
                   doctype start end tag h1 span trow trowa trowh th td anchor
                   fail $fatedir $recent_age $ancient_age $hidden_age href
                   $gitweb/;
@@ -125,6 +125,21 @@ sub load_report {
     return { header => $hdr, conf => $conf, recs => \@recs };
 }
 
+sub load_lastpass {
+    my ($slot) = @_;
+    my %lastpass;
+
+    if (open P, "$fatedir/$slot/lastpass") {
+        while (<P>) {
+            my ($test, $pdate, $prev) = split /:/;
+            $lastpass{$test} = { date => $pdate, rev => $prev };
+        }
+        close P;
+    }
+
+    return \%lastpass;
+}
+
 sub parse_date {
     $_[0] =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/ or return undef;
     mktime $6, $5, $4, $3, $2-1, $1-1900;
index 6f82b1e..fc3d9d0 100755 (executable)
@@ -24,7 +24,6 @@ $$hdr{version} eq '0'              or fail 'Bad report version';
 
 my %pass;
 my %fail;
-my %lastpass;
 
 while (<R>) {
     my $rec = split_rec $_;
@@ -38,14 +37,7 @@ my $nfail = keys %fail;
 my $ntest = $npass + $nfail;
 
 my $rep = load_summary $req_slot, $req_time;
-
-if (open P, "$slotdir/lastpass") {
-    while (<P>) {
-        my ($test, $pdate, $prev) = split /:/;
-        $lastpass{$test} = { date => $pdate, rev => $prev };
-    }
-    close P;
-}
+my $lastpass = load_lastpass $req_slot;
 
 # main text
 
@@ -155,19 +147,19 @@ if ($nfail) {
         td "stderr",  class => 'toggle', onclick => "show_err('$test')";
         td $test;
         td $$rec{status}, class => 'errcode';
-        if ($lastpass{$n} and $gitweb) {
+        if ($$lastpass{$n} and $gitweb) {
             my ($old, $new);
-            $lastpass{$n}{rev} =~ /git-(.*)/ and $old = $1;
+            $$lastpass{$n}{rev} =~ /git-(.*)/ and $old = $1;
             $$hdr{rev}         =~ /git-(.*)/ and $new = $1;
             if ($old and $new) {
                 start 'td';
-                anchor $lastpass{$n}{rev}, href => "$gitweb;a=shortlog;h=$new;hp=$old";
+                anchor $$lastpass{$n}{rev}, href => "$gitweb;a=shortlog;h=$new;hp=$old";
                 end 'td';
             } else {
-                td $lastpass{$n}{rev};
+                td $$lastpass{$n}{rev};
             }
         } else {
-            td $lastpass{$n}? $lastpass{$n}{rev} : 'n / a';
+            td $$lastpass{$n}? $$lastpass{$n}{rev} : 'n / a';
         }
         end 'tr';
         start 'tr', id => "$test-diff", class => 'diff';