automated UUCP maps
sources-request at panda.UUCP
sources-request at panda.UUCP
Sun May 18 07:29:56 AEST 1986
Mod.sources: Volume 5, Issue 2
Submitted by: gc at vax135.uucp (Eugene Cristofor)
We are taking the maps automatically from the net with the shells attached.
It seems to work well - I tought you may want to let other people in this
business know about them.
gene
------------------------ CUT HERE ------------------------------
# This is a shell archive. Remove anything before this line, then
# unpack it by saving it in a file and typing "sh file". (Files
# unpacked will be owned by you and have default permissions.)
#
# This archive contains:
# README crontab.local uugetmaps uumkmk
echo x - README
cat > "README" << '//E*O*F README//'
The UUCP maps are automatically read from the net by uugetmaps(1L)
which is fired by the cron every 6 days.
Uugetmaps(1L) strips the news headers from the files and installs them
in the public uumap directory.
Next, uumkmk(1L) is fired (only if the previous step was ok), which
build a makefile on the fly containing the map names and invokes
pathalias(1L) to build the UUPATH database.
The user interface is the uupath(1L) program that takes input of the
form:
machine!user
and returns the full path from the UUPATH database like:
mach1!mach2!...!user
//E*O*F README//
echo x - crontab.local
cat > "crontab.local" << '//E*O*F crontab.local//'
/usr/lib/crontab.local:45 1 * * 6 (cd /usr/spool/uucppublic/uumap ; uugetmaps && uumkmk && make) >>/usr/adm/cronlog 2>&1
//E*O*F crontab.local//
echo x - uugetmaps
cat > "uugetmaps" << '//E*O*F uugetmaps//'
#!/bin/sh
# @(#)uugetmaps.sh 1.2
# Reads the netnews for the UUCP maps, exctract them and
# moves them to the storage area
DEST=/usr/spool/uucppublic/uumap
ADM=gc
NEWSGROUP=mod.map
KEYWORDS="UUCP map"
TMP=/tmp/uugetmaps.$$
DIR=/usr/tmp/uugetmaps
trap "rm -f $TMP ; exit 1" 2 3 15
# Go to an empty directory
if [ -d $DIR ]
then rm -fr $DIR/*
else mkdir $DIR
fi
cd $DIR || exit 1
# Throw away the headers of the new articles and undo the
# maps - assume that they are shar(1L) archives
readnews -n $NEWSGROUP -t "${KEYWORDS}" -p |
awk '
/^----/ {next;}
/^Newsgroup/ {next;}
/^Article/ {next;}
/^Subject/ {next;}
/^From/ {next;}
/^Path/ {next;}
/^Date/ {next;}
/^Sender/ {next;}
/^Message/ {next;}
/^Expires/ {next;}
/^Reply/ {next;}
/^Relay/ {next;}
/^Posting/ {next;}
/^Follow/ {next;}
/^Organization/ {next;}
/^Newsgroups/ {next;}
/^References/ {next;}
/^Control/ {next;}
{print;}' |
sh
# Move maps to the storage area - assume that they are named u.*
echo "~s UUCP maps" > $TMP
echo "The following maps received:" >> $TMP
k=0
for i in u.*
do
if [ -f $DEST/$i ]
then mv $DEST/$i $DEST/O$i
fi
mv $i $DEST
echo $DEST/$i >> $TMP
k=`expr $k + 1`
done
if [ k -gt 0 ]
then mail $ADM < $TMP
fi
rm -f $TMP
exit 0
# "@{#}@{#}pathalias.sl 1.9 "
# @(#)Makefile 1.6
# @(#)uupath.1 1.2
//E*O*F uugetmaps//
echo x - uumkmk
cat > "uumkmk" << '//E*O*F uumkmk//'
#!/bin/sh
# @(#)uumkmk.sh 1.2
#
# Generates a makefile that will rebuild the UUPATH database from the
# individual UUPC maps - the assumption is that the maps are deposited
# by magic into the right directory.
#
# The makefile is built on the fly because the names of individual
# maps are not a priori known - the only assumption made is that
# they are called u.*
#
MASTER=vax135
DIR=/usr/spool/uucppublic/uumap
TMP=/tmp/uumkmap.$$
MK=Makefile
trap "rm -f $TMP ; exit 1" 2 3 15
if [ `hostname` != $MASTER ]
then echo "$0: must be run on $MASTER" >&2; exit 2
fi
# Assumes that maps are called u.*
cd $DIR || exit 3
ls u.* | awk '{printf "\t\t%s\\\n", $0;}' > $TMP
if [ ! -s $TMP ]
then echo "$0: no UUCP maps in $DIR" >&2; exit 4
fi
if [ ! -f JUNK ]
then cp /dev/null JUNK
fi
# Generate a makefile with the maps as dependents
(
echo "# This makefile is generated by $0"
echo "# *** DO NOT REMOVE ***"
echo "ADM = gc"
echo
echo "UUPATH:\\"
cat $TMP
echo " JUNK"
echo " mv UUPATH OUUPATH"
echo " pathalias -p -l $MASTER\\"
cat $TMP
echo " >UUPATH 2>ERR"
echo " echo UUPATH rebuilt | mail $(ADM)"
) > $MK
rm -f $TMP
exit 0
# "@{#}@{#}pathalias.sl 1.9 "
# @(#)Makefile 1.6
# @(#)uupath.1 1.2
//E*O*F uumkmk//
exit 0
More information about the Mod.sources
mailing list