| #!/bin/sh |
| |
| user="$1" |
| [ "$user" = "" ] && echo "usage: run_one_nitemc username" |
| [ "$user" = "" ] && exit 99 |
| |
| # where the $HOMEs are: |
| userdir=/export/home/nitemc/$user |
| svndir=/export/home/nitemc/svn |
| |
| mkdir -p $userdir |
| cd $userdir |
| mv log log.1 |
| |
| ( |
| echo "Starting corpus-nightly for $user ($svndir , $userdir)" |
| |
| . /etc/profile |
| HOME=$userdir |
| PERL=/local/perl586/bin/perl |
| TMPDIR=/tmpfs |
| export HOME PERL TMPDIR |
| |
| # create the .corpus file, keeping the rsync password secret; |
| # the string __RSYNC_PASSWORD__ will be replaced with the |
| # contents of /export/home/nitemc/USERNAME/rsync_password |
| |
| src=$svndir/backend/nitemc/corpus.$user |
| [ -f $src ] || src=$svndir/backend/nitemc/corpus.default |
| |
| if [ ! -f rsync_password ] ; then |
| cp ../rsync_password.default rsync_password |
| fi |
| |
| perl -pe ' |
| s{__USERNAME__}{'$user'}g; |
| s{__RSYNC_PASSWORD__}{ incfile("rsync_password") }eg; |
| |
| sub incfile { |
| my $file = shift; |
| my $new=`cat $file`; chop $new; $new =~ s/\s+/ /gs; |
| return "\"".$new."\""; |
| } |
| ' $src > .corpus |
| |
| # clean up any trash from another user's mass-checks |
| rm -rf $svndir/masses/tmp |
| rm -rf $svndir/masses/spamassassin |
| rm -rf $svndir/masses/*.log |
| |
| # ensure we use the shared SVN checkout |
| rm -f svn |
| ln -s ../svn svn |
| |
| # set up default user_prefs, override with a custom one if existing |
| echo ' |
| use_bayes 0 |
| use_auto_whitelist 0 |
| internal_networks 127/8 |
| trusted_networks 127/8 |
| ' > user_prefs.default |
| [ -f user_prefs.nightly ] || cp user_prefs.default user_prefs.nightly |
| [ -f user_prefs.weekly ] || cp user_prefs.default user_prefs.weekly |
| |
| # ensure we always have at least 1 mail of each class for each user |
| for class in ham spam ; do |
| corpusdir=/export/home/bbmass/uploadedcorpora/$user/$class |
| if [ `ls $corpusdir | wc -l` = 0 ] ; then |
| mkdir -p $corpusdir |
| cp $svndir/backend/nitemc/empty.mbox $corpusdir |
| fi |
| done |
| |
| cd $svndir |
| exec nice bash $svndir/masses/rule-qa/corpus-nightly |
| |
| ) 2>&1 | tee log |
| |