#! /bin/sh
# addgroups - locally add a bunch of newsgroups from a checkgroups description

# =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
. ${NEWSCONFIG-/news/share/cnews/config}

PATH=$NEWSCTL/bin:$NEWSBIN/maint:$NEWSBIN/relay:$NEWSBIN:$NEWSPATH ; export PATH
umask $NEWSUMASK

usage="Usage: $0 < groupfile"

case $# in
0)	;;
*)	echo "$usage" >&2 ; exit 2	;;
esac

lock="$NEWSCTL/LOCK"
ltemp="$NEWSCTL/L.$$"
echo $$ >$ltemp
trap "rm -f $ltemp ; exit 0" 0 1 2 15
while true
do
	if newslock $ltemp $lock
	then
		trap "rm -f $ltemp $lock ; exit 0" 0 1 2 15
		break
	fi
	echo 'news system locked, waiting...'
	sleep 5
done
SENDER=${USER-unknown}@`hostname`

while read group desc; do
	case "$desc" in
	*[Mm]oderated*)	status=m;;
	*)		status=y;;
	esac

	already="`sed 's/[ 	].*//' $NEWSCTL/active | fgrep -x \"$group\"`"
	if test " $already" != " "
	then
		echo "$0: $group appears to exist already: \`$already'" >&2
		continue
	fi


	echo "$group 0000000000 0000000001 $status" >>$NEWSCTL/active
	mkpdir $NEWSARTS/`echo $group | tr . /`	
	echo "$group `getdate now` $SENDER" >>$NEWSCTL/active.times  # rn hook
	echo "created $group"
done
