/[pkg-listmaster]/trunk/spamassassin_config/update_spamassassin
ViewVC logotype

Diff of /trunk/spamassassin_config/update_spamassassin

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 87 by don, Mon Oct 29 07:21:06 2007 UTC revision 416 by zobel, Sun Apr 22 11:22:58 2012 UTC
# Line 9  SVN=$(which svn) Line 9  SVN=$(which svn)
9    
10  TMPDIR=$(mktemp -d);  TMPDIR=$(mktemp -d);
11    
12  if [ "$HOSTNAME" == "rietz" ]; then  HOSTNAME=$(hostname);
13    
14    if [ "$HOSTNAME" = "rietz" ] || [ "$HOSTNAME" = "busoni" ]; then
15      BASEDIR="/org/bugs.debian.org"      BASEDIR="/org/bugs.debian.org"
16      USERCONF="bugs/user_prefs";      USERCONF="bugs/user_prefs";
17  elif [ "$HOSTNAME" == "murphy" ]; then  elif [ "$HOSTNAME" = "bendel" ]; then
18      BASEDIR="/var/list/.etc";      BASEDIR="/var/list/.etc";
19      USERCONF="bugs/user_prefs";      USERCONF="lists/user_prefs";
20  else  else
21      echo "Unknown hostname '$HOSTNAME'";      echo "Unknown hostname '$HOSTNAME'";
22      exit 1;      exit 1;
# Line 23  fi; Line 25  fi;
25  SACONFIG="$BASEDIR/spamassassin_config";  SACONFIG="$BASEDIR/spamassassin_config";
26  BAKDIR="$BASEDIR/spamassassin_config_bak";  BAKDIR="$BASEDIR/spamassassin_config_bak";
27    
28    # because alioth continuously fails, make sure that svn info will
29    # succeed first before cluttering the log. Ideally we would report
30    # this error, but it happens far too frequently, so we bail out here.
31    if ! svn info $(svn info $SACONFIG|awk '/^URL:/{print $2}') >/dev/null 2>&1; then
32        exit 0;
33    fi;
34    
35  # figure out if there's an update to be made  # figure out if there's an update to be made
36  ORIGREV=$(svn info $SACONFIG |awk '/^Revision:/{print $2}')  ORIGREV=$(svn info $SACONFIG |awk '/^Revision:/{print $2}')
37  NEWREV=$(svn info $(svn info $SACONFIG|awk '/^URL:/{print $2}')|awk '/^Revision:/{print $2}')  NEWREV=$(svn info $(svn info $SACONFIG|awk '/^URL:/{print $2}')|awk '/^Revision:/{print $2}')
38    
39  # no changes, bug out.  # no changes, bug out.
40  if [ $ORIGREV -ge $NEWREV ];  if [ "0$ORIGREV" -ge "0$NEWREV" ]; then
41      exit 0;      exit 0;
42  fi;  fi;
43    
44  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
45      echo "Another update_spamassassin appears to be running"      echo "Another update_spamassassin appears to be running"
46      exit 1;      exit 1;
47  else  else
48      echo $$ > "$SACONFIG/.update_spamassassin";      echo $$ > "$SACONFIG/.update_spamassassin";
49  fi;  fi;
50    
51  function remove_pidfile(){  remove_pidfile () {
52      rm "$SACONFIG/.update_spamassassin";      rm "$SACONFIG/.update_spamassassin";
53  }  }
54    
55  trap remove_pidfile ERR;  trap remove_pidfile 0;
56    
57  FAILUREMESSAGE="";  FAILUREMESSAGE="";
58  function report_failure(){  report_failure () {
59      # Hrm; a previous update failed; don't report again until the file      # Hrm; a previous update failed; don't report again until the file
60      # is removed      # is removed or it's more than a day old
61      if [ -e "$SACONFIG/failed_update" ]; then      if [ -e "$SACONFIG/failed_update" ] &&
62            [ $(($(date +%s) - $(stat -c '%Y' "$SACONFIG/failed_update"))) -lt 86400 ];  then
63            rm -rf "$TMPDIR"
64          exit 0;          exit 0;
65      fi;      fi;
66      echo "$FAILUREMESSAGE" >> "$SACONFIG/failed_update"      echo "$FAILUREMESSAGE" > "$SACONFIG/failed_update"
67      echo "$FAILUREMESSAGE";      echo "$FAILUREMESSAGE";
68      cat - <<EOF;      cat - <<EOF;
69    
70  Update_spamassassin will not report any additional errors until this  update_spamassassin will only report this error once a day, and
71  is fixed.  updates will not occur until this is fixed.
72    
73  Please fix the problem and then remove  Please fix the problem and then remove
74  $SACONFIG/failed_update  $SACONFIG/failed_update
75  EOF  EOF
76        rm -rf "$TMPDIR"
77      exit 1;      exit 1;
78  }  }
79    
80  cp -ar $SACONFIG $TMPDIR/.  cp -ar $SACONFIG $TMPDIR/.
81    OLDDIR="$(pwd)"
82  cd $TMPDIR/spamassassin_config;  cd $TMPDIR/spamassassin_config;
83  svn update -q --non-interactive;  svn update -q --non-interactive;
84  if svn status |grep -q '^C'; then  if svn status |grep -q '^C'; then
85      FAILUREMESSAGE="$(echo -e 'The following conflicts were found\n')"      FAILUREMESSAGE=$'The following conflicts were found\n\n'
86      FAILUREMESSAGE="$FAILUREMESSAGE$(svn status|grep ^C)";      FAILUREMESSAGE="$FAILUREMESSAGE$(svn status|grep ^C)";
87      report_failure      report_failure
88  fi;  fi;
89  cd - >/dev/null 2>&1  cd "$(pwd)"
90    
91  FAILUREMESSAGE="$(spamassassin -C $TMPDIR/spamassassin_config/$USERCONF --lint)"  if ! spamassassin -p $TMPDIR/spamassassin_config/$USERCONF --lint > $TMPDIR/sa_lint 2>&1; then
92  if [ "$?" != "0" ]; then      FAILUREMESSAGE="$(echo -e 'spamassassin -p $TMPDIR/spamassassin_config/$USERCONF --lint\nfailed with\n'| cat - $TMPDIR/sa_lint)";
     FAILUREMESSAGE="$(echo -e 'spamassassin -C $TMPDIR/spamassassin_config/$USERCONF --lint\nfailed with\n')$FAILUREMESSAGE";  
93      report_failure      report_failure
94  fi;  fi;
95  mv "$SACONFIG" "$BAKDIR/spamassassin_config_r$ORIGREV"  mv "$SACONFIG" "$BAKDIR/spamassassin_config_r$ORIGREV"
96  mv "$TMPDIR/spamassassin_config" "$SACONFIG"  mv "$TMPDIR/spamassassin_config" "$SACONFIG"
97  trap ERR  trap - ERR
98    remove_pidfile
99  rm -rf "$TMPDIR"  rm -rf "$TMPDIR"
100    
101  if [ "$HOSTNAME" == "rietz" ]; then  if [ "$HOSTNAME" == "rietz" ]; then
102      touch /home/debbugs/.spamassassin/user_prefs      touch /home/debbugs/.spamassassin/user_prefs
103  elif [ "$HOSTNAME" == "murphy" ]; then  elif [ "$HOSTNAME" == "bendel" ]; then
104      # do nothing      # do nothing
105        true;
106  else  else
107      echo "Unknown hostname '$HOSTNAME'";      echo "Unknown hostname '$HOSTNAME'";
108      exit 1;      exit 1;
109  fi;  fi;
110    
111    
 exit 0;  
112    exit 0;

Legend:
Removed from v.87  
changed lines
  Added in v.416

  ViewVC Help
Powered by ViewVC 1.1.5