Mailing List Archive

svn commit: rev 36053 - spamassassin/trunk/masses
Author: quinlan
Date: Fri Aug 6 17:35:41 2004
New Revision: 36053

Modified:
spamassassin/trunk/masses/parse-rules-for-masses
Log:
fix some obvious bugs and see where that gets us


Modified: spamassassin/trunk/masses/parse-rules-for-masses
==============================================================================
--- spamassassin/trunk/masses/parse-rules-for-masses (original)
+++ spamassassin/trunk/masses/parse-rules-for-masses Fri Aug 6 17:35:41 2004
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/perl -w
#
# <@LICENSE>
# Copyright 2004 Apache Software Foundation
@@ -16,6 +16,8 @@
# limitations under the License.
# </@LICENSE>

+use strict;
+
sub usage {
die "
parse-rules-for-masses: parse the SpamAssassin rules files for mass-checks,
@@ -67,8 +69,8 @@
my @files = <$indir/[0-9]*.cf>;
my $file;
my $scores_mutable = 1;
- %rulesfound = ();
- %langs = ();
+ my %rulesfound = ();
+ my %langs = ();
foreach $file (sort @files) {
open (IN, "<$file");
while (<IN>)
@@ -84,6 +86,7 @@

s/#.*$//g; s/^\s+//; s/\s+$//; next if /^$/;

+ # TODO: this could be overwriting stuff
my $lang = '';
if (s/^lang\s+(\S+)\s+//) {
$lang = $1;
@@ -93,19 +96,20 @@
my $type = $1;
my $name = $2;

- my $issubrule = '0';
- if ($name =~ /^__/) { $issubrule = '1'; }
-
- $rules->{$1} ||= { };
+ $rules->{$name} ||= { };
$rules->{$name}->{type} = $type;
$rules->{$name}->{lang} = $lang;
- $rules->{$name}->{issubrule} = $issubrule;
+ $rules->{$name}->{issubrule} = ($name =~ /^__/) ? '1' : '0';
$rules->{$name}->{tflags} = '';

} elsif (/^describe\s+(\S+)\s+(.+)$/) {
$rules->{$1} ||= { };
- $rules->{$1}->{describe} = $2;
-
+ if ($lang) {
+ $rules->{$1}->{describe} ||= $2;
+ }
+ else {
+ $rules->{$1}->{describe} = $2;
+ }
} elsif (/^tflags\s+(\S+)\s+(.+)$/) {
$rules->{$1} ||= { };
$rules->{$1}->{tflags} = $2;
@@ -142,7 +146,7 @@

# if a rule didn't have a score specified, assume it's
# mutable
- $rules->{$name}->{mutable} = 1;
+ $rules->{$rule}->{mutable} = 1;
}
}
}