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