35 lines
890 B
Perl
Executable File
35 lines
890 B
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
# Create a directory called 'output' with generated files for all config files in the $PWD
|
|
|
|
use lib '../lib/';
|
|
use Mail::SpamAssassin::KeywordRuleGenerator;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
my $id = 'MC';
|
|
my $dir = 'output';
|
|
|
|
# setup
|
|
my $kw = Mail::SpamAssassin::KeywordRuleGenerator->new( { 'id' =>$id, 'debug' => 0, 'joinScores' => 0 , 'dir' => $dir } );
|
|
|
|
# clean
|
|
unlink(glob("$dir/*"));
|
|
rmdir($dir);
|
|
|
|
# get files in PWD
|
|
my @files = glob("./*");
|
|
my @clean;
|
|
|
|
$kw->createDir($dir);
|
|
|
|
my @failed = $kw->readAll( @files );
|
|
die scalar(@failed)." error(s) - ".join(', ', @failed)."\n" if (scalar(@failed));
|
|
$kw->writeAll();
|
|
|
|
use Mail::SpamAssassin;
|
|
my $sa = Mail::SpamAssassin->new( { 'site_rules_filename' => "./$dir", 'pre_config_text' => "loadplugin Mail::SpamAssassin::Plugin::Check" } );
|
|
my $fail = $sa->lint_rules();
|
|
die "Failed to verify with SpamAssassin: $fail" if ($fail);
|