diff options
author | Peter Palfrader <peter@palfrader.org> | 2006-05-21 00:12:51 +0000 |
---|---|---|
committer | weasel <weasel@bc3d92e2-beff-0310-a7cd-cc87d7ac0ede> | 2006-05-21 00:12:51 +0000 |
commit | 0ca5e97d456bc72df24804997d2c446878113032 (patch) | |
tree | bd9f84664838b543c909d8c1238bc4531aa21650 /oftc-listmod-learn-mail | |
parent | cc3f4406f24009819ade28b440f9e6b767b9139b (diff) |
Move files into proper place
git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@99 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede
Diffstat (limited to 'oftc-listmod-learn-mail')
-rwxr-xr-x | oftc-listmod-learn-mail | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/oftc-listmod-learn-mail b/oftc-listmod-learn-mail new file mode 100755 index 0000000..d8074f9 --- /dev/null +++ b/oftc-listmod-learn-mail @@ -0,0 +1,51 @@ +#!/usr/bin/ruby + +SPAMIN="mail/spam-learn" +SPAMOUT="mail/spam-learned" +HAMIN="mail/ham-learn" +HAMOUT="mail/ham-learned" + +$verbose = 0 +if ARGV[0] == "-v" + $verbose = 1 +end + +def check_maildir(d) + throw "#{d} is not a maildir" unless FileTest.directory?(d) + throw "#{d} is not a maildir" unless FileTest.directory?(d+"/new") + throw "#{d} is not a maildir" unless FileTest.directory?(d+"/cur") + throw "#{d} is not a maildir" unless FileTest.directory?(d+"/tmp") + true +end + +def move(filename, to) + basename = File.basename(filename) + component = File.basename( File.dirname(filename) ) + throw "Bad component '#{component}' in filename '#{filename}'." unless %w{cur new tmp}.include?(component) + File.link(filename, to+"/"+component+"/"+basename) + File.unlink(filename) +end + +check_maildir SPAMIN +check_maildir SPAMOUT +check_maildir HAMIN +check_maildir HAMOUT + +Dir[SPAMIN+"/new/*"].each do |filename| + puts "learning #{filename}" if $verbose > 0 + if system("sudo -H -u amavis sa-learn --spam < #{filename} > /dev/null") + puts "moving #{filename}" if $verbose > 0 + move(filename, SPAMOUT) + else + STDERR.puts "Learning of #{filename} failed." + end +end +Dir[HAMIN+"/new/*"].each do |filename| + puts "learning #{filename}" if $verbose > 0 + if system("sudo -H -u amavis sa-learn --ham < #{filename} > /dev/null") + puts "moving #{filename}" if $verbose > 0 + move(filename, HAMOUT) + else + STDERR.puts "Learning of #{filename} failed." + end +end |