#!/bin/bash MAILDIR=~/Maildir OPTS="--no-sync" SALEARN=/usr/bin/vendor_perl/sa-learn if [[ "$1" == "-q" ]]; then OPTS="$OPTS" OUTFILE="/dev/null" else OPTS="$OPTS --showdots" OUTFILE="/dev/stdout" fi if [[ ! "$1" == "-q" ]]; then echo "$(date): Learning ham..." fi nice find $MAILDIR -type f | \ perl -nl0e'chomp; ($ts) = /(\d{10})/; $now = time; print if m{/(new|cur)/} && !m{/(\.old|\.spam)/} && $ts > $now - 60*60*24*30' | \ xargs -n1000 -0 $SALEARN $OPTS --ham > $OUTFILE if [[ ! "$1" == "-q" ]]; then echo "$(date): Learning spam..." fi nice find $MAILDIR -type f | \ perl -nl0e'chomp; ($ts) = /(\d{10})/; $now = time; print if m{/(new|cur)/} && m{/\.spam/} && $ts > $now - 60*60*24*30' | \ xargs -n1000 -0 $SALEARN $OPTS --spam > $OUTFILE if [[ ! "$1" == "-q" ]]; then echo "$(date): Syncing..." fi nice $SALEARN --sync > $OUTFILE if [[ ! "$1" == "-q" ]]; then echo "$(date): Done!" fi