chiark / gitweb /
Debugging of modack.approved pipe failures
[modbot-mtm.git] / stump / bin / processApproved
1 #!/bin/bash
2
3 set -ex
4 set -o pipefail
5
6 NEWSBIN=/var/lib/newsbin; export NEWSBIN
7 shift
8 DATE_STAMP="`date +%y%m%d%H%M%S`"
9
10 TMPFILE=$TMP/pa.$DATE_STAMP.$$
11
12 if [ $PGP = "none" ]; then
13   PMAPP_PROG=cat
14 else
15   PMAPP_PROG="$PMAPP $NEWSGROUP"
16 fi
17
18 echo Action: processApproved 1>&2
19
20 cat > $TMPFILE
21
22 save() { 
23
24   ( 
25     cat $TMPFILE
26   ) | procmail -f- $MNG_ROOT/etc/procmail/save-approved
27 }
28
29 post() {
30   FAILED=$TMP/failed.$$
31   (
32     echo Path: "$PATH_SUFFIX"
33
34     cat $MNG_ROOT/etc/added-headers | grep ': ' 
35     # I do grep above because a lot of users inserts empty
36     # lines in the added headers.
37
38     echo Date: `date -R`
39     cat $TMPFILE                                        \
40       | formail -f -a "Newsgroups: $NEWSGROUP"          \
41             -I Path:                                    \
42             -I X-Moderate-For:                          \
43             -I Return-Path:                             \
44             -I X-Mailer:                                \
45             -I "Date:"                                  \
46             -I "X-400-Received:"                        \
47             -I Received: -I "From "                     \
48             -a "Approved: $PMUSER_APPROVAL"             \
49             -I Lines:                                   \
50             -I Cc:                                      \
51             -I To: -I Status:                           \
52             -I "X-Delivered-To:"                        \
53             -I "X-Envelope-To:"                         \
54             -I "X-Forwarding-To:"                       \
55             -I "X-Gradwell-Mailfilter:"                 \
56             -I "Delivered-To:"                          \
57             -I "Envelope-To:"                           \
58             -I "X-Priority:"                            \
59             -I "X-Priority:"                            \
60             -I "X-Priority:"                            \
61             -I "X-MSMail-Priority:"                     \
62             -I "X-MimeOLE:"                             \
63             -I "X-RBL-Warning:"                         \
64             -I "X-Scanner:"                             \
65             -I "X-Spam-Checker-Version:"                \
66             -I "X-Spam-Flag:"                           \
67             -I "X-Spam-Level:"                          \
68             -I "X-Spam-Report"                          \
69             -I "X-Spam-Score:"                          \
70             -I "X-Spam-Status:"                         \
71             -I "X-Scanned-By:"                          \
72             -I "X-Virus-Scanned:"                       \
73             -I "X-Virus-Status:"                        \
74             -I "X-Original-To:"                         \
75             -I "X-UID:"                                 \
76             -I "Delivered-To:"                          \
77             -I "DomainKey-Signature:"                   \
78             -I "Thread-Index:"                          \
79             -I "X-X-Sender:"                            \
80             -I "X-PMX-Version:"                         \
81
82     if [ -f $MNG_ROOT/etc/added-footer ] ; then
83       cat $MNG_ROOT/etc/added-footer
84     fi
85
86   )                                                     \
87     | $PMAPP_PROG                                       \
88     | tee $FAILED                                       \
89     | $RNEWS
90   if [ "$?" = "0" ] ; then
91     /bin/rm $FAILED
92   else
93     echo IHAVE failed. Look at $FAILED. 1>&2
94   fi
95 }
96
97 PMUSER="$PMUSER_APPROVAL"; export PMUSER
98 ROBOMOD="$ROBOMOD_APPROVAL"; export ROBOMOD
99 save
100 post
101
102 if needAck < $TMPFILE; then
103   modack.approved $TMPFILE
104 fi
105
106 rm $TMPFILE