-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimport.in
145 lines (120 loc) · 2.64 KB
/
import.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/sh
# $Id$
#
# import (Netzwerk-System) (Datenformat)
#
# Dieses Shell-Script wird von den Online-Programmen nach Austausch der
# Daten aufgerufen. Im aktuellen Verzeichnis befinden sich die bereits
# ausgepackten Daten (und sonst nichts). Diese muessen nun noch
# konvertiert und an das News/Mail-System weitergereicht werden.
IAM=@FQDN@
#
# Wichtig: hier den Pfad so erweitern, das die Gateway-Programme sowie
# "rmail" und rnews erreichbar sind!
#
PATH=@BINDIR@@PATHADD@:$PATH; export PATH
#
# Der Aufruf zum Einlesen der Mails (nach der Konvertierung in
# Batched-SMTP Format)
#
RSMTP="@RSMTP@"
#
# wenn wir abbrechen muessen ...
#
out_mail() {
echo "To: postmaster"
echo "Subject: ZConnect: Fehler beim Entpacken von $sys" postmaster
echo ""
echo "
Fehler beim Entpacken von System $sys
Folgender Fehler ist aufgetreten:
$error
Verwendetes Verzeichnis war: $TMP
Logfile:
--------"
cat $temp
}
ende() {
out_mail | @SENDMAIL@ postmaster
## Verzeichnis erhalten fuer Diagnose.
## rm -rf $TMP
rm -f $temp
trap 0
exit 1;
}
#
# watch_gate "input"
#
watch_gate() {
errfile="$errfile $1"
echo "Gaten fehlgeschlagen $1"
backup="${sys}-`date +%Y%m%d-%H%M%S`-$$-$1"
echo "Die Daten finden sie unter $backup"
mv $1 @SPOOLDIR@/error/$backup
}
#
# So tun, als wären wir über uucp unterwegs ... zum Loggen
#
if test -n "$1"; then
export UU_MACHINE="$1"
sys="$1"
fi
# temporäre Datei zum Loggen
temp=`mktemp /tmp/import.XXXXXX` || exit 1
# Ausgaben ins Tempfile abfangen
exec >>$temp 2>&1
trap ende 0 1 2 3 4 5 6 7 8 11 13 14 15
echo "cmdl: $0 $*"
echo "date: "
date
echo "cwd: "
pwd
echo ""
echo "Import der empfangenen Daten von $1:"
TMP=import.$$
if [ ! -d @SPOOLDIR@/error ]
then
mkdir @SPOOLDIR@/error ||
{ echo "Ich kann @SPOOLDIR@/error nicht anlegen!" ; ende; }
fi
mkdir $TMP ||
{ echo "kann temporaer-Verzeichnis nicht anlegen!" ; ende; }
for file in *
do
if [ -f $file ]
then
echo "Teile $file"
mv $file $TMP ||
{ error="cannot mv $file $TMP: $?"; ende; }
cd $TMP || exit 1
zconsplit $file ||
{ error="zconsplit $file failed: $?"; ende; }
if [ -f $file ]
then
echo "removing $file"
rm -f $file
fi
if [ -f $file.prv -a -s $file.prv ]
then
echo "$file.prv -> $RSMTP"
(uuwsmtp -f $file.prv $1 | $RSMTP ) ||
watch_gate "$file.prv"
fi
if [ -f $file.brt -a -s $file.brt ]
then
echo "$file.brt -> rnews"
(uuwnews -f $file.brt $1 | rnews ) ||
watch_gate "$file.brt"
fi
cd ..
fi
done
# $TMP haengt von unserer Prozess-ID ab, kann also nicht belegt sein.
if [ -n "$errfile" ]; then
error="Fehler beim Gaten ($errfile)";
ende;
fi
rm -rf $TMP
rm -f $temp
trap 0 1 2 3 4 5 6 7 8 11 13 14 15
# eof