|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 3677 (0xe5d)
Types: TextFile
Names: »checkgroups.sh«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦this⟧ »EUUGD11/euug-87hel/sec1/news/src/checkgroups.sh«
: check active file for missing or extra newsgroups
: '@(#)checkgroups 1.22 3/20/87'
if test ! -s LIBDIR/newsgroups
then
cp /dev/null LIBDIR/newsgroups
fi
# Read first line of stdin. If of the form "-n group", then only check
# for the specified group. Otherwise, assume doing standard groups
sed -e '/^[a-zA-Z-]*: /d' -e '/^$/d' -e '/^[#:]/d' | (
read line
case "${line}" in
-n*)
# Doing specific group. extract group name and preserve
# all of current newsgroups file except for that group.
# Then append entries for this group.
group=`echo "${line}" | sed -e 's/-n /^/' -e 's/$/\\\\./'`
egrep -v "${group}" LIBDIR/newsgroups > /tmp/$$a
cat /tmp/$$a - > LIBDIR/newsgroups
;;
*)
# Get the distributions from the checkgroups message itself
# This allows sites to append their local groups to the distributed
# checkgroups message and prevents stray checkgroups from other sites
# from showing all the local groups as being bad groups.
#
echo "${line}" > /tmp/$$msg
cat >> /tmp/$$msg
cp /dev/null /tmp/$$b
sed -e "s;[ ].*;;" -e "s;\..*;;" -e "s;^!;;" /tmp/$$msg | sort -u |
while read dist
do
group=`cat /tmp/$$b`
group="${group}|^$dist\\."
echo "${group}" > /tmp/$$b
done
group=`cat /tmp/$$b`
egrep -v "${group}" LIBDIR/newsgroups > /tmp/$$a
cat /tmp/$$a > LIBDIR/newsgroups
sed -e "/^!/d" /tmp/$$msg >> LIBDIR/newsgroups
rm -f /tmp/$$b /tmp/$$msg
;;
esac
egrep "${group}" LIBDIR/active | sed 's/ .*//' | sort >/tmp/$$active
egrep "${group}" LIBDIR/newsgroups | sed 's/ .*//' | sort >/tmp/$$newsgrps
comm -13 /tmp/$$active /tmp/$$newsgrps >/tmp/$$missing
comm -23 /tmp/$$active /tmp/$$newsgrps >/tmp/$$remove
egrep "${group}" LIBDIR/active | sed -n "/m\$/s/ .*//p" |
sort > /tmp/$$amod.all
egrep "${group}" LIBDIR/newsgroups |
sed -n "/Moderated/s/[ ][ ]*.*//p" | sort > /tmp/$$ng.mod
comm -12 /tmp/$$missing /tmp/$$ng.mod >/tmp/$$add.mod
comm -23 /tmp/$$missing /tmp/$$ng.mod >/tmp/$$add.unmod
cat /tmp/$$add.mod /tmp/$$add.unmod >>/tmp/$$add
comm -23 /tmp/$$amod.all /tmp/$$remove >/tmp/$$amod
comm -13 /tmp/$$ng.mod /tmp/$$amod >/tmp/$$ismod
comm -23 /tmp/$$ng.mod /tmp/$$amod >/tmp/$$nm.all
comm -23 /tmp/$$nm.all /tmp/$$add >/tmp/$$notmod
if test -s /tmp/$$remove
then
(
echo "The following newsgroups are not valid and should be removed."
sed "s/^/ /" /tmp/$$remove
echo ""
echo "You can do this by executing the command:"
echo \ LIBDIR/rmgroup `cat /tmp/$$remove`
echo ""
) 2>&1 >/tmp/$$out
fi
if test -s /tmp/$$add
then
(
echo "The following newsgroups were missing and should be added."
sed "s/^/ /" /tmp/$$add
echo ""
echo "You can do this by executing the command(s):"
for i in `cat /tmp/$$add.unmod`
do
echo 'LIBDIR/inews -C '$i' </dev/null'
done
for i in `cat /tmp/$$add.mod`
do
echo 'LIBDIR/inews -C '$i' moderated </dev/null'
done
echo ""
) 2>&1 >>/tmp/$$out
fi
if test -s /tmp/$$ismod
then
(
echo "The following newsgroups are not moderated and are marked moderated."
sed "s/^/ /" /tmp/$$ismod
echo ""
echo "You can correct this by executing the command(s):"
for i in `cat /tmp/$$ismod`
do
echo 'LIBDIR/inews -C '$i' </dev/null'
done
echo ""
) 2>&1 >>/tmp/$$out
fi
if test -s /tmp/$$notmod
then
(
echo "The following newsgroups are moderated and not marked so."
sed "s/^/ /" /tmp/$$notmod
echo ""
echo "You can correct this by executing the command(s):"
for i in `cat /tmp/$$notmod`
do
echo 'LIBDIR/inews -C '$i' moderated </dev/null'
done
echo ""
) 2>&1 >>/tmp/$$out
fi
if test -s /tmp/$$out
then
(echo "Subject: Problems with your active file"
echo ""
cat /tmp/$$out
) | if test $# -gt 0
then
mail $1
else
cat
fi
fi
)
rm -f /tmp/$$*