Skip site navigation (1)Skip section navigation (2)
Date:      Tue,  9 Sep 2008 03:24:06 -0700 (PDT)
From:      Jeremy Chadwick <koitsu@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        scheidell@secnap.net
Subject:   ports/127242: Add nightly periodic(8) script that uses sa-update
Message-ID:  <20080909102406.B4C7317B84E@icarus.home.lan>
Resent-Message-ID: <200809091030.m89AU19x050771@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         127242
>Category:       ports
>Synopsis:       Add nightly periodic(8) script that uses sa-update
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 09 10:30:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Jeremy Chadwick
>Release:        FreeBSD 7.1-PRERELEASE amd64
>Organization:
>Environment:
System: FreeBSD icarus.home.lan 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Tue Sep 2 00:14:39 PDT 2008 root@icarus.home.lan:/usr/obj/usr/src/sys/PDSMI_PLUS_amd64 amd64
>Description:
	It would be convenient if we have a periodic(8) script that ran
	sa-update nightly, allowing new rules to be downloaded automatically.
>How-To-Repeat:
	n/a
>Fix:
	Below is the script.  Note that the hard-coded /usr/local paths will
	need to be changed to %%WHATEVER%% and expanded.  (I'm being somehwat
	lazy tonight, otherwise I'd include a full diff/patch for the port
	Makefile and related stuffs)

	periodic flags used are fairly self-descriptive.  :-)



#!/bin/sh -f
#
# $FreeBSD$
#
# periodic(8) script that runs sa-update on a nightly basis, updating
# SpamAssassin rules if needed.  Relies on sa-update command.
#
# Contributed by: Jeremy Chadwick <koitsu@FreeBSD.org>
#
# Define these variables in either /etc/periodic.conf or
# /etc/periodic.conf.local to override the defaults.
#
# Examples:
#
# saupdate_enable="YES"		# run sa-update(1) daily
# saupdate_flags="--nogpg"	# flags passed to sa-update, e.g. disable GPG support
# saupdate_restart_spamd="YES"	# Restart sa-spamd when new rules are found


# If there is a global system configuration file, suck it in.
#
if [ -r /etc/defaults/periodic.conf ]
then
    . /etc/defaults/periodic.conf
    source_periodic_confs
fi

: ${saupdate_enable="NO"}
: ${saupdate_flags=""}
: ${saupdate_restart_spamd="YES"}

rc=0
case "$saupdate_enable" in
    [Yy][Ee][Ss])
	echo
	echo "Running sa-update:"
	echo

	/usr/local/bin/sa-update ${saupdate_flags} || rc=$?

	if [ $rc -eq 0 ]; then
		echo "Downloaded and installed new rules."
		echo
		case "$saupdate_restart_spamd" in
		    [Yy][Ee][Ss])
			echo "Restarting sa-spamd:"
			echo
			/usr/local/etc/rc.d/sa-spamd restart
			;;
		    *)  ;;
		esac
	elif [ $rc -eq 1 ]; then
		echo "No new rules available."
		rc=0
	else
		echo "sa-update failed with exit code $rc.  Please refer to the sa-update(1)"
		echo "man page for details."
	fi
	;;
    *)  rc=0 ;;
esac

exit $rc
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080909102406.B4C7317B84E>