]> git.donarmstrong.com Git - spamassassin_config.git/blobdiff - update_spamassassin
add blars changes
[spamassassin_config.git] / update_spamassassin
index 1a8c41af509e62a5a3979f996ab623420c9ed5d5..1769913350bb46cdcedd7dd138cf55db5874e714 100755 (executable)
@@ -9,12 +9,12 @@ SVN=$(which svn)
 
 TMPDIR=$(mktemp -d);
 
-if [ "$HOSTNAME" == "rietz" ]; then
+if [ "$HOSTNAME" = "rietz" ]; then
     BASEDIR="/org/bugs.debian.org"
     USERCONF="bugs/user_prefs";
-elif [ "$HOSTNAME" == "murphy" ]; then
+elif [ "$HOSTNAME" = "liszt" ]; then
     BASEDIR="/var/list/.etc";
-    USERCONF="bugs/user_prefs";
+    USERCONF="lists/user_prefs";
 else
     echo "Unknown hostname '$HOSTNAME'";
     exit 1;
@@ -28,11 +28,11 @@ ORIGREV=$(svn info $SACONFIG |awk '/^Revision:/{print $2}')
 NEWREV=$(svn info $(svn info $SACONFIG|awk '/^URL:/{print $2}')|awk '/^Revision:/{print $2}')
 
 # no changes, bug out.
-if [ $ORIGREV -ge $NEWREV ];
+if [ "0$ORIGREV" -ge "0$NEWREV" ]; then
     exit 0;
 fi;
 
-if [ -e "$SACONFIG/.update_spamassassin" ] && kill -0 $(cat "$SACONFIG/.update_spamassassin"); then
+if [ -e "$SACONFIG/.update_spamassassin" ] && kill -0 $(cat "$SACONFIG/.update_spamassassin") >/dev/null 2>&1; then
     echo "Another update_spamassassin appears to be running"
     exit 1;
 else
@@ -50,12 +50,20 @@ function report_failure(){
     # Hrm; a previous update failed; don't report again until the file
     # is removed
     if [ -e "$SACONFIG/failed_update" ]; then
+       rm -rf "$TMPDIR"
        exit 0;
     fi;
-    echo "$FAILURE_MESSAGE" >> "$SACONFIG/failed_update"
-    echo "$FAILURE_MESSAGE";
-    echo
-    echo "update_spamassassin will not report any additional errors until this is fixed"
+    echo "$FAILUREMESSAGE" >> "$SACONFIG/failed_update"
+    echo "$FAILUREMESSAGE";
+    cat - <<EOF;
+
+Update_spamassassin will not report any additional errors until this
+is fixed.
+
+Please fix the problem and then remove
+$SACONFIG/failed_update
+EOF
+    rm -rf "$TMPDIR"
     exit 1;
 }
 
@@ -63,30 +71,31 @@ cp -ar $SACONFIG $TMPDIR/.
 cd $TMPDIR/spamassassin_config;
 svn update -q --non-interactive; 
 if svn status |grep -q '^C'; then
-    FAILUREMESSAGE="$(echo -e 'The following conflicts were found\n')"
+    FAILUREMESSAGE=$'The following conflicts were found\n\n'
     FAILUREMESSAGE="$FAILUREMESSAGE$(svn status|grep ^C)";
     report_failure
 fi;
 cd - >/dev/null 2>&1
 
-FAILUREMESSAGE="$(spamassassin -C $TMPDIR/spamassassin_config/$USERCONF --lint)"
-if [ "$?" != "0" ]; then
-    FAILUREMESSAGE="$(echo -e 'spamassassin -C $TMPDIR/spamassassin_config/$USERCONF --lint\nfailed with\n')$FAILUREMESSAGE";
+if ! spamassassin -p $TMPDIR/spamassassin_config/$USERCONF --lint > $TMPDIR/sa_lint 2>&1; then
+    FAILUREMESSAGE="$(echo -e 'spamassassin -p $TMPDIR/spamassassin_config/$USERCONF --lint\nfailed with\n'| cat - $TMPDIR/sa_lint)";
     report_failure
 fi;
 mv "$SACONFIG" "$BAKDIR/spamassassin_config_r$ORIGREV"
 mv "$TMPDIR/spamassassin_config" "$SACONFIG"
-trap ERR
+trap - ERR
+remove_pidfile
 rm -rf "$TMPDIR"
 
 if [ "$HOSTNAME" == "rietz" ]; then
     touch /home/debbugs/.spamassassin/user_prefs
-elif [ "$HOSTNAME" == "murphy" ]; then
+elif [ "$HOSTNAME" == "liszt" ]; then
     # do nothing
+    true;
 else
     echo "Unknown hostname '$HOSTNAME'";
     exit 1;
 fi;
 
 
-exit 0;
\ No newline at end of file
+exit 0;