#! /bin/sh
# initialise data base files first time
NEWSCTL=/usr/lib/news
NEWSBIN=/usr/lib/newsbin
NEWSARTS=/usr/spool/news
PATH=$NEWSBIN/maint:/bin:/usr/bin:/usr/ucb:.; export PATH
stamp=$NEWSARTS/time.stamp

SHELL=/bin/sh locknews <<!
	sleep 2
	touch $stamp  # anything newer we'll get from relaynews
	sleep 2
	>$NEWSCTL/headers	# avoid duplicates
	# after unlocking, relaynews may write new headers
!
temp=$NEWSCTL/L.$$
lock=$NEWSCTL/LOCKoverview

echo $$ >$temp
trap "rm -f $temp; exit" 0 1 2 15
until $NEWSBIN/newslock $temp $lock; do
	sleep 15
done
trap "rm -f $temp $lock; exit" 0 1 2 15
# let relaynews start generating new headers
cd $NEWSARTS
# load ls, sort & mkov so sh can memorise their locations
ls / | sort | mkov -a >/dev/null 2>&1
# the sort is an attempt to maximise locality of reference in the file system
for d in ` awk '{print $1}' $NEWSCTL/active | tr . / | sort `
do
	(cd $d
	 echo $d >&2		# DEBUG
	 # sort -n ensures numeric article order for the .overview file
	 ls -f | sort -n | xargs mkov -ao $stamp >.overview
	)
done
rm $stamp
