#!/bin/sh

# @(#) addjunk
#
# last modification: 13.12.93 hm
#

# =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
. ${NEWSCONFIG-/usr/local/lib/news/bin/config}

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

JUNK=$NEWSARTS/junk
NEWS=$NEWSARTS
ADDG=$NEWSBIN/maint/addgroup
TEMP=/tmp/active.$$

ACTIVE=$NEWSCTL/active
NOGROUP=$NEWSCTL/addjunk.nogroup
ECHO=
DEBUG=#

# ECHO=echo
# DEBUG=echo
# ACTIVE=/tmp/fake.$$
# cp $NEWSCTL/active $ACTIVE

rm -f $TEMP
cp $ACTIVE $ACTIVE.save

cd $JUNK

if [ ! -f $NOGROUP ]
then
	echo "# file $NOGROUP created at "`date` > $NOGROUP
	chmod 600 $NOGROUP
fi

for i in *
do
	if [ ! -f $i ]
	then
		echo "Nothing to do."
		exit 1
	fi
	NGLIST=`grep "^Newsgroups: " $i | sed 's/^Newsgroups:[ ]*//;s/,/ /g'`
	# $DEBUG "Article $i NGLIST=\"$NGLIST\""
	for GROUP in $NGLIST
	do
		# $DEBUG "Perform GROUP=\"$GROUP\""
		NOACT=`grep "^$GROUP$" $NOGROUP`
		if [ "$NOACT" != "" ]
		then
			echo group $GROUP rejected by $NOGROUP
		else
			ACTLINE=`grep "^$GROUP " $ACTIVE`
			ANSWER=y
			if [ "$ACTLINE" = "" ]
			then
				ANSWER="x"
				while [ "$ANSWER" != "y" -a "$ANSWER" != "n" ]
				do
					echo -n "add group $GROUP? [yn] "
					read ANSWER
				done
				# ANSWER=`request "add group $GROUP? [yn] " n`
			fi
			if [ "$ANSWER" = "y" ]
			then
				if [ "$ACTLINE" = "" ]
				then
					# no line in active-file
					echo new group $GROUP
					$ADDG $GROUP y
					ACTLINE="$GROUP 00000000 00000000 y"
				fi
				GDIR=$NEWS"/"`echo $GROUP | sed 's/\./\//g'`
				# $DEBUG "ACTLINE=\"$ACTLINE\" GDIR=\"$GDIR\""
				if [ ! -d $GDIR ]
				then
					$ECHO mkdir -p $GDIR
					$ECHO chown news.news $GDIR
					$ECHO chmod ug+s $GDIR
				fi
				set $ACTLINE
				NUMBER=`expr $2 + 1`
				echo "save $JUNK/$i as $GROUP/$NUMBER"
				$ECHO ln $JUNK/$i $GDIR/$NUMBER
				ACTLINE="$GROUP 000$NUMBER $3 $4"
				grep -v "^$GROUP " $ACTIVE > $TEMP
				echo $ACTLINE >> $TEMP
				cp $TEMP $ACTIVE
			else
				echo $GROUP >> $NOGROUP
			fi
		fi
	done
	rm -f $JUNK/$i
done


