summaryrefslogtreecommitdiff
path: root/oftc-listmod-learn-mail
diff options
context:
space:
mode:
authorPeter Palfrader <peter@palfrader.org>2006-05-21 00:12:51 +0000
committerweasel <weasel@bc3d92e2-beff-0310-a7cd-cc87d7ac0ede>2006-05-21 00:12:51 +0000
commit0ca5e97d456bc72df24804997d2c446878113032 (patch)
treebd9f84664838b543c909d8c1238bc4531aa21650 /oftc-listmod-learn-mail
parentcc3f4406f24009819ade28b440f9e6b767b9139b (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-xoftc-listmod-learn-mail51
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