From 095880dfd8a5df380c5a5ce155c779a22a9765dc Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 26 Apr 2014 07:42:25 +0000 Subject: spamassassin rule and config updates While we're at it, add a script for easy editing of user prefs. We need some human-maintained rules based on the spam we get. It's an imperfect world, but I'd _much_ rather deal with the occassional spam than require signup/registration to post. --- scripts/edit-sa-prefs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 scripts/edit-sa-prefs (limited to 'scripts/edit-sa-prefs') diff --git a/scripts/edit-sa-prefs b/scripts/edit-sa-prefs new file mode 100755 index 00000000..acaed610 --- /dev/null +++ b/scripts/edit-sa-prefs @@ -0,0 +1,38 @@ +#!/bin/sh +# Copyright (C) 2014, Eric Wong +# License: GPLv3 or later +# edit and atomically update ~/.spamasassin/user_prefs safely +set -e +cd ~/.spamassassin +cp user_prefs user_prefs.edit.$$ # don't care if we clobber old files + +# non-blocking lock +if ! ln user_prefs.edit.$$ user_prefs.edit +then + rm user_prefs.edit.$$ + echo >&2 "we are already editing user_prefs.edit" + exit 1 +fi + +rm user_prefs.edit.$$ + +${VISUAL-vi} user_prefs.edit + +if diff -u user_prefs user_prefs.edit +then + rm -f user_prefs.edit + echo 'no changes' + exit 0 +fi + +# check until we're good or $EDITOR fails +while ! spamassassin -p user_prefs.edit --lint +do + echo >&2 "respawning editor, press Enter to continue" + read ignored_var + ${VISUAL-vi} user_prefs.edit +done + +# atomically replace user_prefs +mv user_prefs.edit user_prefs +echo '~/.spamassassin/user_prefs updated' -- cgit v1.2.3-24-ge0c7