#!/bin/sh

# Duncan Findlay
# duncf@debian.org

# Daily cronjob for SpamAssassin updates. This isn't pretty but it
# should do the job.

set -e

CRON=0

test -f /etc/default/spamassassin && . /etc/default/spamassassin

test -x /usr/bin/sa-update || exit 0
test -x /etc/init.d/spamassassin || exit 0

if [ "$CRON" = "0" ] ; then
    exit 0
fi

# Sleep for up to 3600 seconds
# Taken from apticron's cron.daily
RANGE=3600
number=`od -vAn -N2 -tu4 < /dev/urandom`
number=`expr $number "%" $RANGE`
sleep $number


# Update
umask 022
sa-update || exit 0

# Compile, if rules have previously been compiled, and it's possible
if [ -x /usr/bin/re2c -a -x /usr/bin/sa-compile -a -d /var/lib/spamassassin/compiled ]; then
    sa-compile > /dev/null 2>&1
fi

# Fixup perms -- group and other should be able to read and execute, 
# but never write.  Works around sa-compile's failure to obey umask.
if [ -d /var/lib/spamassassin ]; then
    chmod -R go-w,go+rX /var/lib/spamassassin/
fi

# Reload
if which invoke-rc.d >/dev/null 2>&1; then
    invoke-rc.d spamassassin reload > /dev/null 2>&1
else
    /etc/init.d/spamassassin reload > /dev/null 2>&1
fi
