From 7d89adf46fc629d8038a83c4da10c9ea5fb54dfd Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 11 Aug 2017 09:43:47 +0200 Subject: [PATCH] new helper load_sa_descriptions --- PMG/Utils.pm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/PMG/Utils.pm b/PMG/Utils.pm index 3386d88..3d4e2fe 100644 --- a/PMG/Utils.pm +++ b/PMG/Utils.pm @@ -941,4 +941,39 @@ sub bencode_header { return $res; } +sub load_sa_descriptions { + + my @dirs = ('/usr/share/spamassassin', + '/usr/share/spamassassin-extra'); + + my $res = {}; + + my $parse_sa_file = sub { + my ($file) = @_; + + open(my $fh,'<', $file); + return if !defined($fh); + + while (defined(my $line = <$fh>)) { + if ($line =~ m/^describe\s+(\S+)\s+(.*)\s*$/) { + my ($name, $desc) = ($1, $2); + next if $res->{$name}; + $res->{$name}->{desc} = $desc; + if ($desc =~ m|[\(\s](http:\/\/\S+\.[^\s\.\)]+\.[^\s\.\)]+)|i) { + $res->{$name}->{url} = $1; + } + } + } + close($fh); + }; + + foreach my $dir (@dirs) { + foreach my $file (<$dir/*.cf>) { + $parse_sa_file->($file); + } + } + + return $res; +} + 1; -- 2.39.2