From 0ca5e97d456bc72df24804997d2c446878113032 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Sun, 21 May 2006 00:12:51 +0000 Subject: Move files into proper place git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@99 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede --- oftc-listmod-learn-mail | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 oftc-listmod-learn-mail (limited to 'oftc-listmod-learn-mail') 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 -- cgit v1.2.3