#!/bin/sh SPAMASSASSIN_BASE_DIR=/usr/local/debug/mail/spamassassin [ -f ${SPAMASSASSIN_BASE_DIR}/rc.conf.sa.default ] && . ${SPAMASSASSIN_BASE_DIR}/rc.conf.sa.default [ -f ${SPAMASSASSIN_BASE_DIR}/rc.conf.sa ] && . ${SPAMASSASSIN_BASE_DIR}/rc.conf.sa cd ${SPAMD_HOME} if test "$SHELL" = "/bin/sh" ; then log=${SA_LEARN_LOG} else showdots="--showdots" fi LEARNED= learn() { msg_dir=$2 bak_dir=$3 TMP_DIR=/tmp/sa-learn-`/usr/local/bin/bash -c 'echo $RANDOM'` if test ! -z "`ls ${msg_dir}`" ; then [ -d $TMP_DIR ] && /bin/rm -rf ${TMP_DIR} /bin/mkdir -p ${TMP_DIR} if [ "`uname`" = "Linux" ] ; then find ${msg_dir}/ -type f | xargs -ifile mv file ${TMP_DIR}/ else find ${msg_dir}/ -type f | xargs -I file mv file ${TMP_DIR}/ fi if test -z "$log" ; then [ ! -z "${DEBUG}" ] && echo "> ${SA_LEARN_PATH} -u ${SPAMD_USER} ${showdots} --$1 --dir ${TMP_DIR}/ --prefs-file=${SA_CONF_FILE}" ${SA_LEARN_PATH} -u ${SPAMD_USER} ${showdots} --$1 --dir ${TMP_DIR}/ --prefs-file=${SA_CONF_FILE} RETVAL=$? else echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >>${log} date >>${log} echo ${SA_LEARN_PATH} -u ${SPAMD_USER} ${showdots} --$1 --dir ${TMP_DIR}/ --prefs-file=${SA_CONF_FILE} >>${log} ${SA_LEARN_PATH} -u ${SPAMD_USER} ${showdots} --$1 --dir ${TMP_DIR}/ --prefs-file=${SA_CONF_FILE} >>${log} RETVAL=$? fi if [ $RETVAL -eq 0 ] ; then if [ "`uname`" = "Linux" ] ; then find ${TMP_DIR}/ -type f | xargs -ifile mv file ${bak_dir}/ else find ${TMP_DIR}/ -type f | xargs -I file mv file ${bak_dir}/ fi LEARNED="YES" fi /bin/rm -rf ${TMP_DIR} else if test ! -z "$log" ; then echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >>${log} date >>${log} echo "directory ${msg_dir} is empty" >>${log} fi fi } BAYES_PATH=`grep '^bayes_path' ${SA_CONF_FILE} | awk '{print $2}'` [ -z "${BAYES_PATH}" ] && BAYES_PATH=`cat /usr/local/debug/mail/spamassassin/conf/*.cf | grep '^bayes_path' | awk '{print $2}'` [ -z "${BAYES_PATH}" ] || /usr/sbin/chown ${SPAMD_USER}:${SPAMD_GROUP} ${BAYES_PATH}* [ -z "${DEBUG}" ] || echo "########## SA-LEARN: learn messages from own SPAMASSASSIN directories" learn ham sa-learn-ham-new backup/ham-new learn ham sa-learn-ham-cur backup/ham-new learn ham sa-learn-ham-www backup/ham-new learn ham sa-learn-nvi-ham-new backup/ham-new learn ham sa-learn-nvi-ham-cur backup/ham-new learn spam sa-learn-spam-new backup/spam-new learn spam sa-learn-spam-cur backup/spam-new learn spam sa-learn-spam-www backup/spam-new learn ham sa-learn-nvi-spam-new backup/spam-new learn ham sa-learn-nvi-spam-cur backup/spam-new [ -z "${BAYES_PATH}" ] || /usr/sbin/chown ${SPAMD_USER}:${SPAMD_GROUP} ${BAYES_PATH}* if [ ! -z "$LEARNED" ] ; then echo "> ${SA_LEARN_PATH} --backup > ${SPAMD_HOME}/.spamassassin/bayes.backup" ${SA_LEARN_PATH} --backup > ${SPAMD_HOME}/.spamassassin/bayes.backup fi