chiark / gitweb /
Leave "Date" header alone.
[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     perl <$MNG_ROOT/etc/added-headers -ne '
35         next unless m/\:/;
36         s/\[REFERENCE\]/[$ENV{"WEBSTUMP_MESSAGENUM"}]/g
37             if defined $ENV{"WEBSTUMP_MESSAGENUM"};
38         print or die $!;
39     '
40     # I do grep above because a lot of users inserts empty
41     # lines in the added headers.
42
43     cat $TMPFILE                                        \
44       | formail -f -a "Newsgroups: $NEWSGROUP"          \
45             -I Path:                                    \
46             -I X-Moderate-For:                          \
47             -I Return-Path:                             \
48             -I X-Mailer:                                \
49             -I "X-400-Received:"                        \
50             -I Received: -I "From "                     \
51             -a "Approved: $PMUSER_APPROVAL"             \
52             -I Lines:                                   \
53             -I Cc:                                      \
54             -I To: -I Status:                           \
55             -I "X-Delivered-To:"                        \
56             -I "X-Envelope-To:"                         \
57             -I "X-Forwarding-To:"                       \
58             -I "X-Gradwell-Mailfilter:"                 \
59             -I "Delivered-To:"                          \
60             -I "Envelope-To:"                           \
61             -I "X-Priority:"                            \
62             -I "X-Priority:"                            \
63             -I "X-Priority:"                            \
64             -I "X-MSMail-Priority:"                     \
65             -I "X-MimeOLE:"                             \
66             -I "X-RBL-Warning:"                         \
67             -I "X-Scanner:"                             \
68             -I "X-Spam-Checker-Version:"                \
69             -I "X-Spam-Flag:"                           \
70             -I "X-Spam-Level:"                          \
71             -I "X-Spam-Report"                          \
72             -I "X-Spam-Score:"                          \
73             -I "X-Spam-Status:"                         \
74             -I "X-Scanned-By:"                          \
75             -I "X-Virus-Scanned:"                       \
76             -I "X-Virus-Status:"                        \
77             -I "X-Original-To:"                         \
78             -I "X-UID:"                                 \
79             -I "Delivered-To:"                          \
80             -I "DomainKey-Signature:"                   \
81             -I "Thread-Index:"                          \
82             -I "X-X-Sender:"                            \
83             -I "X-PMX-Version:"                         \
84
85     if [ -f $MNG_ROOT/etc/added-footer ] ; then
86       cat $MNG_ROOT/etc/added-footer
87     fi
88
89   )                                                     \
90     | $PMAPP_PROG                                       \
91     | tee $FAILED                                       \
92     | $RNEWS
93   if [ "$?" = "0" ] ; then
94     /bin/rm $FAILED
95   else
96     echo IHAVE failed. Look at $FAILED. 1>&2
97   fi
98 }
99
100 PMUSER="$PMUSER_APPROVAL"; export PMUSER
101 ROBOMOD="$ROBOMOD_APPROVAL"; export ROBOMOD
102 save
103 post
104
105 if needAck < $TMPFILE; then
106   modack.approved $TMPFILE
107 fi
108
109 rm $TMPFILE