You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2018/09/17 09:37:29 UTC

svn commit: r1841057 - in /spamassassin/trunk/masses/contrib/automasscheck-minimal: automasscheck-minimal.cf.dist automasscheck-minimal.sh

Author: hege
Date: Mon Sep 17 09:37:28 2018
New Revision: 1841057

URL: http://svn.apache.org/viewvc?rev=1841057&view=rev
Log:
Clean up and remove bashisms. Add PERL, REUSE, CUSTOM_PREFS, CUSTOM_RULES to config.

Modified:
    spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist
    spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh

Modified: spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist
URL: http://svn.apache.org/viewvc/spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist?rev=1841057&r1=1841056&r2=1841057&view=diff
==============================================================================
--- spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist (original)
+++ spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist Mon Sep 17 09:37:28 2018
@@ -19,7 +19,7 @@
 
 
 # automasscheck-minimal configuration file
-# davej 0.03
+# davej 0.04
 
 # See https://wiki.apache.org/spamassassin/NightlyMassCheck 
 
@@ -31,22 +31,42 @@ LOGPREFIX="YOUR-USERNAME"
 RSYNC_USERNAME="YOUR-USERNAME"
 RSYNC_PASSWORD="YOUR-PASSWORD"
 
+# Path to perl executable
+PERL=/usr/bin/perl
+
 # If your corpus is huge, to speed up processing you can use a ramdisk for WORKDIR
 # It doesn't need to survive a reboot - it will be automagically recreated
-WORKDIR=~/masscheckwork
+WORKDIR=$HOME/masscheckwork
 
 # HOW MANY MASSCHECK SIMULTANEOUS THREADS CAN YOUR BOX HANDLE?
 # Default = 8
 # If using on an older PC you may want to lower to 6 or less
 # If load is still too high - decrease some more.
 # A well equipped 8 core server can easily handle 10 or more.
-# In automasscheck-minimal.sh change to
-# JOBS=10
+JOBS=8
 
-# Leave these blank if you do not want trusted_networks
-# and/or internal_networks to be set
-TRUSTED_NETWORKS=
-INTERNAL_NETWORKS=
+# Leave blank if you do not want trusted_networks or internal_networks to be set
+# Normally both should atleast include IP of your MX server(s)
+# https://wiki.apache.org/spamassassin/TrustPath
+TRUSTED_NETWORKS=""
+INTERNAL_NETWORKS=""
+
+# Uncomment to enable --reuse for net mass-checks.  Mails MUST have been
+# processed at receive time with all network tests enabled, without any
+# major shortcircuiting and having the X-Spam-Status result header added. 
+# This results in much faster mass-checking as there is no need to run
+# network tests (dnsbl/spf/dkim/etc lookups) needlessly again.  It also
+# results in more accurate stats/scores, since dynamic dns data can change
+# hourly - results will be different days or even months later when
+# mass-check is run.
+#REUSE=--reuse
+
+# Custom rules/config files for mass-check
+# Specified file (multiples files separated by space) will be..
+# .. added to runtime spamassassin/user_prefs
+#CUSTOM_PREFS="$HOME/custom_prefs.cf"
+# .. created as runtime rules/99_custom.cf
+#CUSTOM_RULES="$HOME/custom_rules.cf"
 
 run_all_masschecks() {
   ### sample: single corpus ###
@@ -57,13 +77,13 @@ run_all_masschecks() {
   # If you have multiple separate corpuses, you can specify as many run_masscheck lines as you want below.
   ### user2 ###
   #run_masscheck user2 \
-  #             ham:mbox:/home/user2/mail/HAM
-  #             spam:mbox:/home/user2/mail/SPAM
+  #             ham:mbox:/home/user2/mail/HAM \
+  #             spam:mbox:/home/user2/mail/SPAM \
   # This is an example of Maildir instead of mbox
   ### user3 ###
   #run_masscheck user3 \
   #             ham:dir:/home/user3/mail/HAM/cur \
-  #             spam:dir:/home/user3/mail/SPAM/cur \
+  #             spam:dir:/home/user3/mail/SPAM/cur
 }
 
 ### END CONFIGURATION ###

Modified: spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh
URL: http://svn.apache.org/viewvc/spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh?rev=1841057&r1=1841056&r2=1841057&view=diff
==============================================================================
--- spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh (original)
+++ spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh Mon Sep 17 09:37:28 2018
@@ -19,8 +19,8 @@
 
 
 setup_masscheck() {
-  [[ ! -d $WORKDIR/$TYPE/masses/spamassassin ]] && mkdir -p $WORKDIR/$TYPE/masses/spamassassin
-  cd $WORKDIR/$TYPE/masses/
+  [ ! -d "$WORKDIR/$TYPE/masses/spamassassin" ] && mkdir -p "$WORKDIR/$TYPE/masses/spamassassin"
+  cd "$WORKDIR/$TYPE/masses" || { echo "ERROR: cd $WORKDIR/$TYPE/masses failed" >&2; exit 1; }
   rm -f spamassassin/*
   echo "bayes_auto_learn 0" > spamassassin/user_prefs
   echo "lock_method flock" >> spamassassin/user_prefs
@@ -29,76 +29,76 @@ setup_masscheck() {
   echo "whitelist_bounce_relays example.com" >> spamassassin/user_prefs
   echo "score ANY_BOUNCE_MESSAGE 0" >> spamassassin/user_prefs
   echo "score BOUNCE_MESSAGE 0" >> spamassassin/user_prefs
-  [[ -n "${TRUSTED_NETWORKS}" ]] && echo "trusted_networks ${TRUSTED_NETWORKS}" >> spamassassin/user_prefs
-  [[ -n "${INTERNAL_NETWORKS}" ]] && echo "internal_networks ${INTERNAL_NETWORKS}" >> spamassassin/user_prefs
+  [ -n "${TRUSTED_NETWORKS}" ] && echo "trusted_networks ${TRUSTED_NETWORKS}" >> spamassassin/user_prefs
+  [ -n "${INTERNAL_NETWORKS}" ] && echo "internal_networks ${INTERNAL_NETWORKS}" >> spamassassin/user_prefs
+  [ -n "${CUSTOM_PREFS}" ] && cat ${CUSTOM_PREFS} >> spamassassin/user_prefs
+  rm -f "$WORKDIR/$TYPE/rules/99_custom.cf"
+  [ -n "${CUSTOM_RULES}" ] && cat ${CUSTOM_RULES} > "$WORKDIR/$TYPE/rules/99_custom.cf"
 }
 
 setup_checktype() {
-  unset NET LOGTYPE
-  export RSYNC_PASSWORD
-  [[ ! -d $WORKDIR ]] && mkdir $WORKDIR
-  DOW=`date +%w`
-  if [[ "$DOW" -ne 6 ]] || [[ "$1" == "--nightly" ]]; then
+  [ ! -d "$WORKDIR" ] && mkdir "$WORKDIR"
+  DOW=$(date +%w)
+  if [ "$DOW" -ne 6 ] || [ "$1" = "--nightly" ]; then
     # Run nightly_mass_check
     TYPE=nightly_mass_check
     echo "Syncing $TYPE"
-    rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ $WORKDIR/$TYPE/
+    rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ "$WORKDIR/$TYPE/"
     RC=$?
+    NET=
     LOGTYPE=
-    RSYNCMOD=corpus
   else
     # If Saturday, run the weekly_mass_check
     TYPE=weekly_mass_check
     echo "Syncing $TYPE"
-    rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ $WORKDIR/$TYPE/
+    rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ "$WORKDIR/$TYPE/"
     RC=$?
     NET=--net
+    [ -z "$REUSE" ] && NET="$REUSE $NET"
     LOGTYPE=net-
-    RSYNCMOD=corpus
   fi
-  if [[ "$RC" -ne 0 ]]; then
-    echo "ERROR: rsync failure $RC, aborting..."
+  if [ "$RC" -ne 0 ]; then
+    echo "ERROR: rsync failure $RC, aborting..." >&2
     exit 1
   else
-    SVNREV=`awk '/Revision:/ {print $2}' $WORKDIR/$TYPE/masses/svninfo.tmp`
-    [[ ! -z "$SVNREV" ]] && echo "SVN revision = $SVNREV"
+    SVNREV=$(awk '/Revision:/ {print $2}' "$WORKDIR/$TYPE/masses/svninfo.tmp")
+    [ ! -z "$SVNREV" ] && echo "SVN revision = $SVNREV"
   fi
 }
 
 run_masscheck() {
   CORPUSNAME=$1
   shift
-  if [[ "$CORPUSNAME" == "single-corpus" ]]; then
+  if [ "$CORPUSNAME" = "single-corpus" ]; then
     # Use this if you have only a single corpus
     LOGSUFFIX=
   else
     LOGSUFFIX="-${CORPUSNAME}"
   fi
-  LOGNAME=${LOGTYPE}${LOGPREFIX}${LOGSUFFIX}.log
-  rm -f ham-${LOGNAME} spam-${LOGNAME}
+  LOGFILE=${LOGTYPE}${LOGPREFIX}${LOGSUFFIX}.log
+  rm -f ham-${LOGFILE} spam-${LOGFILE}
   set -x
-  ./mass-check --hamlog=ham-${LOGNAME} --spamlog=spam-${LOGNAME} \
-             -j $JOBS $NET --progress  \
+  $PERL ./mass-check --hamlog=ham-${LOGFILE} --spamlog=spam-${LOGFILE} \
+             -j $JOBS $NET --progress \
              "$@"
-  LOGLIST="$LOGLIST ham-${LOGNAME} spam-${LOGNAME}"
+  LOGLIST="$LOGLIST ham-${LOGFILE} spam-${LOGFILE}"
   set +x
-  ln -s ham-${LOGNAME} ham.log
-  ln -s spam-${LOGNAME} spam.log
+  ln -s ham-${LOGFILE} ham.log
+  ln -s spam-${LOGFILE} spam.log
 }
 
 upload_results() {
   # Occasionally rsync server fails to respond on first attempt,
   # so attempt upload a few times before giving up.
-  [[ -z "$RSYNCMOD" ]] && return 0
-  if [[ -z "$RSYNC_PASSWORD" ]] || [[ "$RSYNC_PASSWORD" == "YOUR-PASSWORD" ]]; then
+  if [ -z "$RSYNC_PASSWORD" ] || [ "$RSYNC_PASSWORD" = "YOUR-PASSWORD" ]; then
     return 0
   fi
   TRY=0
-  while [[ "$TRY" -le 5 ]]; do
+  while [ "$TRY" -le 5 ]; do
     TRY=$((TRY+1))
-    ARGS="-qPcvz $LOGLIST $RSYNC_USERNAME@rsync.spamassassin.org::$RSYNCMOD/"
+    ARGS="-qPcvz $LOGLIST $RSYNC_USERNAME@rsync.spamassassin.org::corpus/"
     echo "rsync $ARGS"
-    rsync $ARGS && break
+    RSYNC_PASSWORD=$RSYNC_PASSWORD rsync $ARGS && break
     sleep 5m
   done
 }
@@ -109,19 +109,20 @@ unset RSYNC_USERNAME
 unset RSYNC_PASSWORD
 unset WORKDIR
 unset CHECKDIR
+unset REUSE
 
 # Configure
-if [[ -e ~/.automasscheck.cf ]]; then
-  . ~/.automasscheck.cf
+if [ -e "$HOME/.automasscheck.cf" ]; then
+  . $HOME/.automasscheck.cf
 else
-  echo "ERROR: Configuration file expected at ~/.automasscheck.cf"
-  echo "       See https://wiki.apache.org/spamassassin/NightlyMassCheck"
+  echo "ERROR: Configuration file expected at $HOME/.automasscheck.cf" >&2
+  echo "       See https://wiki.apache.org/spamassassin/NightlyMassCheck" >&2
   exit 255
 fi
 
 # Run
 JOBS=${JOBS:=8}
-setup_checktype $@
+setup_checktype "$@"
 setup_masscheck
 unset LOGLIST
 run_all_masschecks