/[Apache-SVN]/spamassassin/trunk/masses/rule-qa/automc/gen_info_xml
ViewVC logotype

Diff of /spamassassin/trunk/masses/rule-qa/automc/gen_info_xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- spamassassin/trunk/masses/rule-qa/automc/gen_info_xml	2005/10/31 23:50:03	329936
+++ spamassassin/trunk/masses/rule-qa/automc/gen_info_xml	2005/10/31 23:56:22	329937
@@ -25,6 +25,16 @@ my @daterevs = get_all_daterevs();
 
 foreach my $dr (@daterevs) {
   my $drdir = get_datadir_for_daterev($dr);
+
+  # this one is always rebuilt.
+  print "$drdir/fastinfo.xml: creating...\n";
+  my $fastinfo = get_fastinfo($dr, $drdir);
+  open (OUT, ">$drdir/fastinfo.xml") or die "cannot write $drdir/fastinfo.xml";
+  print OUT $fastinfo;
+  close OUT or die "failed to write to $drdir/fastinfo.xml";
+
+  # this one is only built if it doesn't already exist, because
+  # it's quite expensive to build
   if (-f "$drdir/info.xml" && -s _) {
     print "$drdir/info.xml: good\n";
     next;
@@ -45,9 +55,6 @@ sub get_info {
   my $rev = $2;
 
   my $info = {
-    date => $date,
-    rev => $rev,
-    includes_net => 0
   };
 
   if (!$svn_log) {
@@ -63,13 +70,52 @@ sub get_info {
     last;
   }
 
+  return XMLout($info);
+}
+
+sub get_fastinfo {
+  my ($dr, $drdir) = @_;
+
+  $dr =~ /^(\d+)[-\/]r(\d+)$/;
+  my $date = $1;
+  my $rev = $2;
+
+  my $info = {
+    date => $date,
+    rev => $rev,
+    includes_net => 0
+  };
+
   if (-f "$drdir/NET.all") {
     $info->{includes_net} = 1;
   }
 
+  $info->{submitters} = '';
+  if (-f "$drdir/DETAILS.all") {
+    read_submitters("$drdir/DETAILS.all", $info);
+  }
+
   return XMLout($info);
 }
 
+sub read_submitters {
+  my ($fname, $info) = @_;
+
+  open (IN, "<$fname") or warn "cannot read $fname";
+  while (<IN>) {
+    # spam results used for 329933 DETAILS all: spam-mc-fast.log spam-foo.log
+    if (/^# spam results used for \S+ \S+ \S+: (.*)$/) {
+      my $sub = $1;
+      $sub =~ s/\bspam-/ /;
+      $sub =~ s/\.log\b/ /;
+      $sub =~ s/\s+/ /gs;
+      $info->{submitters} = $sub;
+    }
+    last if (!/^#/);        # don't want anything after the comments end
+  }
+  close IN;
+}
+
 sub get_all_daterevs {
   return sort map {
       s/^.*\/(\d+)\/(r\d+)$/$1-$2/; $_;

 

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26