#!/bin/csh -f
#
# tigroups
#
# A script to update the pips.providers file from Moira
#
unset noclobber
umask 22
set path=(/var/ti/local /usr/athena/bin /etc $path)

if ($#argv != 1) then

	echo            Usage: tigroups ProviderFile
	exit 1
endif

set provider_file=$argv[1]

echo "==== BEGIN MOIRA -> TECHINFO ACL CONVERSION ====" `date`

foreach groupline (`egrep '[^:]*:group=[^:]*:[kK]erberos' $provider_file`)

	# parse line like "dcns-dev:group=dcns-dev:Kerberos".
	set elements=`echo $groupline | tr : ' '`
	set provider=$elements[1]
	set pfile=/tmp/provider.$provider
	set group=`echo $elements[2] | awk -F= ' { print $2 } '`

	echo Getting source $provider from Moira list $group ...

	# Get lines for pips.providers file from Moira group
	blanche -noauth -recursive -verbose $group \
	| aclconvert $provider > $pfile

	# Replace existing lines in pips.providers file.
	# At each step, watch out for zero-length files.
	if (! -z $pfile) then
		egrep -v '^'$provider':' $provider_file | cat - $pfile \
		 > $provider_file.new
		rm -f $pfile
		if (! -z $provider_file.new) then
			echo $groupline >> $provider_file.new
			if (! -z $provider_file.new) then
				chown ti_serve $provider_file.new
				rm -f $provider_file.old
				ln $provider_file $provider_file.old
				mv $provider_file.new $provider_file
			endif
		endif
	endif
end

echo "==== END ====" `date`
