#!/bin/sh

#
# bbrun
#
# Sean MacGuire
# Version 1.9
# Mar 13th, 2002
#
# (c) Copyright Quest Software, Inc.  1997-2002  All rights reserved.
#
# Execute BB shell scripts
# loop them forever
#

if test ! -x "$1"
then
	echo "Can't execute $1, exiting"
	exit 1
fi

if test "$BBSLEEP" = ""
then
	echo "BBSLEEP not set, exiting"
	exit 2
fi

# Save the pid of this bbrun for runbb.sh stop processing
echo "$$" >> $BBPID

while true
do
	START=`$BBHOME/bin/touchtime -e`
	$1
	END=`$BBHOME/bin/touchtime -e`
	BBTIME=`$EXPR $END - $START`

	if [ "$BBTIME" -lt "$BBSLEEP" ]
	then
		# Fix for invalid BBTIME
		# If xntpd/ntpdate changes date back a few
		# seconds/mins/hours may cause this
		if [ "$BBTIME" -lt 0 ]
		then
			echo "`$DATE` bbrun ($1) Runtime $BBTIME is invalid"
			BBTIME=`$EXPR 0 - $BBTIME`
			BBTIME=`$EXPR $BBTIME % $BBSLEEP`
		fi
		# echo "BBTIME is $BBTIME"
		SLEEPYTIME=`$EXPR $BBSLEEP - $BBTIME`
		# echo "SLEEPYTIME is $SLEEPYTIME"
		sleep $SLEEPYTIME
	else
		echo "`$DATE` bbrun: ($1) Runtime $BBTIME longer than Sleeptime $BBSLEEP"
	fi
done

