#!/bin/ksh

#
# Check for command line args
#

VDIR=/usr/openv/netbackup/vault

cd $VDIR

if [ $# -lt 1 ]; then
	echo "Insufficient arguments."
	echo "Usage: $0 <all|parameter-file|vault-name>"
	exit 1
fi

if [ $1 = "all" ] ; then

	vaultlist=*

else

	ARGUMENT=`basename $1`
	
	if [ -f $VDIR/production/$ARGUMENT ] ; then
		vaultlist=`grep "^vault " $VDIR/production/$ARGUMENT \
			| awk '{print $2}'`
	else
		if [ -d $VDIR/$ARGUMENT ] ; then
			vaultlist=$ARGUMENT
		else
			echo "$1 is not a vault or a parameter file."
			echo "Usage: $0 <parameter-file|vault-name>"
			exit 1
		fi
	fi
fi

#
# Setup path to log file used for duplication status
#

echo "Checking vault(s) $vaultlist:"


for i in $vaultlist ; do

	[ -f $i/log.file ] && VAULT=$i || continue

	DUPID=`cat $VDIR/$VAULT/bpvault.duplicate`
	
	echo "\nChecking vault: $VAULT..."

	if [ -f $VDIR/$VAULT/DUP$DUPID/bpvault.all.output_$VAULT ] ; then
		diff $VDIR/$VAULT/DUP$DUPID/bpvault.all.output_$VAULT \
			/usr/openv/netbackup/vault/production/bpvault.all.output_$VAULT \
			>/dev/null 2>&1
		if [ $? -eq 0 ] ; then
			DATE=`ls -lt $VDIR/$VAULT/DUP$DUPID/bpvault.all.output_$VAULT \
				|awk '{print $6,$7,$8}'`
			echo "Vault $VAULT completed (Finished on $DATE)."
		fi

 else
	
	LOG=$VDIR/$VAULT/log.file
	DUPFILES="$VDIR/$VAULT/DUP$DUPID/bpvault.dup.*"
	
	TOTDUPS=0
	TOTDONE=0
	TOTSDONE=0
	TOTFDONE=0
	
	if [ -f $DUPFILES ] ; then
		for DUPFILE in $DUPFILES ; do
			BASEDUPFILE=`basename $DUPFILE`
			DUPSTHISFILE=`grep -c . $DUPFILE`
			[ "$DUPSTHISFILE" -eq 0 ] && continue
			SDONE=0
			FDONE=0
			DONE=0
			for IMAGE in `awk '{print $5}' $DUPFILE` ; do
				grep "successful batch dup of image $IMAGE" $LOG >/dev/null
				if [ $? -eq 0 ] ; then
					SDONE=`expr $SDONE + 1`
					DONE=`expr $DONE + 1`
				else
					grep "failed batch dup of image $IMAGE" $LOG >/dev/null
					if [ $? -eq 0 ] ; then
						FDONE=`expr $FDONE + 1` 
						DONE=`expr $DONE + 1`
					else
				 		break
					fi
				fi
			done		
			echo "Completed $DONE of $DUPSTHISFILE images in $BASEDUPFILE \c"
			echo "($SDONE OK , $FDONE failed)."
			TOTDUPS=`expr $TOTDUPS + $DUPSTHISFILE`
			TOTDONE=`expr $TOTDONE + $DONE`	
			TOTSDONE=`expr $TOTSDONE + $SDONE`	
			TOTFDONE=`expr $TOTFDONE + $FDONE`	
		done
	else
		echo "There do not appear to be any dups in the latest dup directory."
	fi

	echo "-----------------------------------"
	echo "Total: Completed $TOTDONE of $TOTDUPS images \c"
	echo "($TOTSDONE OK, $TOTFDONE failed)"
	echo ""
	echo ""

	fi

done
