home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Unix System Administration Handbook 1997 October
/
usah_oct97.iso
/
news
/
cnews.tar
/
ctl
/
dodelayed
< prev
next >
Wrap
Text File
|
1994-10-17
|
1KB
|
60 lines
#! /bin/sh
# dodelayed - handle delayed control messages, if they still exist
# =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
. ${NEWSCONFIG-/etc/news/bin/config}
PATH=$NEWSCTL/bin:$NEWSBIN/relay:$NEWSBIN:$NEWSPATH ; export PATH
umask $NEWSUMASK
lock LOCK $$ || exit 1
trap 'unlock LOCK ; trap 0 ; exit 0' 0 1 2 15
cd $NEWSARTS
# if there is nothing to do, don't try to do it
if test ! -s $NEWSCTL/delayed
then
exit 0
fi
# first, which ones are due?
now="`now`"
awk 'BEGIN { now = '$now' }
{
if ($1 > now)
print $1, $2
else
print "do", $2
}' $NEWSCTL/delayed >/tmp/delayed$$
# second, which of those still exist?
sed -n '/^do /s///p' /tmp/delayed$$ | dbz -x $NEWSCTL/history |
awk -F' ' 'NF == 3 { print $3 }' | tr . / |
while read first rest
do
if test -r "$first"
then
echo "$first"
fi
done >/tmp/delaydo$$
# do them
if test -s /tmp/delaydo$$
then
for f in `cat /tmp/delaydo$$`
do
canonhdr $f |
sed -n 's;^Control:[ ]*;'$NEWSBIN/relay/del';p' |
egrep -v '/^(cancel|ihave|sendme) ' >/tmp/ctl$$
# It might seem as if we need to duplicate relaynews's
# security checks -- for .. or metacharacters -- but a
# control message never gets into NEWSCTL/delayed unless
# relaynews approves of it.
sh /tmp/ctl$$ <$f
done
fi
# and clean up
egrep -v '^do' /tmp/delayed$$ >$NEWSCTL/delayed
rm -f /tmp/ctl$$ /tmp/delayed$$ /tmp/delaydo$$