]> git.donarmstrong.com Git - spamassassin_config.git/blobdiff - update_spamassassin
add changes from blarson
[spamassassin_config.git] / update_spamassassin
index b8976999d2ffb13fffcb9cbe3c301a0afffadda7..3ffa065e8afa39deb1eca7560dff10794904dd3f 100755 (executable)
@@ -9,10 +9,10 @@ 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" == "liszt" ]; then
+elif [ "$HOSTNAME" = "liszt" ]; then
     BASEDIR="/var/list/.etc";
     USERCONF="lists/user_prefs";
 else
@@ -28,7 +28,7 @@ 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 ]; then
+if [ "0$ORIGREV" -ge "0$NEWREV" ]; then
     exit 0;
 fi;
 
@@ -48,20 +48,23 @@ trap remove_pidfile ERR;
 FAILUREMESSAGE="";
 function report_failure(){
     # Hrm; a previous update failed; don't report again until the file
-    # is removed
-    if [ -e "$SACONFIG/failed_update" ]; then
+    # is removed or it's more than a day old
+    if [ -e "$SACONFIG/failed_update" ] &&
+       [ $(($(date +%s) - $(stat -c '%Y' "$SACONFIG/failed_update"))) -lt 86400 ];  then
+       rm -rf "$TMPDIR"
        exit 0;
     fi;
-    echo "$FAILUREMESSAGE" >> "$SACONFIG/failed_update"
+    echo "$FAILUREMESSAGE" > "$SACONFIG/failed_update"
     echo "$FAILUREMESSAGE";
     cat - <<EOF;
 
-Update_spamassassin will not report any additional errors until this
-is fixed.
+update_spamassassin will only report this error once a day, and
+updates will not occur until this is fixed.
 
 Please fix the problem and then remove
 $SACONFIG/failed_update
 EOF
+    rm -rf "$TMPDIR"
     exit 1;
 }
 
@@ -87,7 +90,7 @@ 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