#!/bin/sh

# runbb.sh
# BIG BROTHER MAIN SCRIPT
# Sean MacGuire - The MacLawran Group Inc.
# Version 1.2b
# Jul 12th, 1999
#
# This program is Copyright (c) 1997-1999
# The MacLawran Group Inc.
# All Rights Reserved
#
# THE MOTHER OF ALL SHELL SCRIPTS...
#

#
# BBHOME IS THE ROOT DIRECTORY OF BIG BROTHER!!!
# YOU MUST SET THE NEXT LINE TO WHERE BB LIVES

BBHOME="/usr/local/bb" 
export BBHOME

if [ "$BBHOME" = "" -o ! -d "$BBHOME" ]
then
	echo "BBHOME IS INVALID IN runbb.sh"
	echo "Please edit runbb.sh to correct this problem!"
	exit 1
fi

BBPID=""

ACTION="$1"
if [ -z "$ACTION" ]
then
	ACTION="start"
fi

. $BBHOME/etc/bbdef.sh		# GET STANDARD INCLUDES


case $ACTION in

	stop )

		echo "Stopping Big Brother..." 
		echo "`date`: Stopping Big Brother..." >> $BBHOME/BBOUT
		kill -9 `$CAT $BBTMP/BBPID` 
		$RM $BBTMP/BBPID
		exit 0
		;;

	restart )
	
		echo "Restarting Big Brother..." 
		echo "`date`: Restarting Big Brother..." >>  $BBHOME/BBOUT
		kill -9 `$CAT $BBTMP/BBPID`
		$RM $BBTMP/BBPID
		sleep 5
                #####
                #####  Delete log files
                #####
		echo "Deleting log files ..... "
                cd $BBHOME/www/logs
                rm *
                #####
                #####  Delete html files
                #####
                echo "Deleting html files ..... "
                cd $BBHOME/www
                rm -f bb.html
                rm -f bb2.html
                #####
                #####
                #####
		;;

	start ) 
	
		echo "Starting Big Brother..." 
		echo "`date`: Starting Big Brother..." >>  $BBHOME/BBOUT
		if [ -f "$BBTMP/BBPID" ]
		then
			$PS | $GREP "bin/bb" >/dev/null 2>&1
			if [ "$?" -eq 0 ]
			then
				echo "Big Brother is already running, aborting start procedure"
				exit 1
			else
				$RM $BBTMP/BBPID	# remove the stale BBPID file
			fi
		fi
		;;

	* )

		echo "Usage: runbb.sh start|restart|stop"
		exit 1
		;;

esac


# echo "BBDISPLAY=$BBDISPLAY BBPAGER=$BBPAGER BBNET=$BBNET"

BBSLEEP=300			# HOW OFTEN TO UPDATE (IN SECONDS)
export BBSLEEP

#
# IF WE NEED THE BIG BROTHER DAEMON ON THIS MACHINE THEN START IT
#
if test "$BBSERVER" = "TRUE"
then
	echo "Starting Big Brother Daemon (bbd)..."
	echo "Starting Big Brother Daemon (bbd)..." >> $BBHOME/BBOUT
        #####
        #####  Changed by Paul A. Luzzi on 02-03-2000
        #####    because the BBOUT file is getting HUGE and needs
        #####    to be fixed.  In the mean time, send to /dev/null
        #####
	##$BBHOME/bin/bbd >> $BBHOME/BBOUT 2>&1
	$BBHOME/bin/bbd >> /dev/null 2>&1
	sleep 2
fi

$RM -f ${BBTMP}/BB.$$
$RM -f ${PAGINGLOCK}_*		# Spotted by Martin Richard

BBSLEEP=300			# HOW OFTEN TO UPDATE LOCAL INFO (IN SECONDS)

# echo "*** CALLING BB-LOCAL ***"
#####
#####  Changed by Paul A. Luzzi on 02-03-2000
#####    because the BBOUT file is getting HUGE and needs
#####    to be fixed.  In the mean time, send to /dev/null
#####
## nohup $BBHOME/bin/bbrun $BBHOME/bin/bb-local.sh >> $BBHOME/BBOUT 2>&1 &
nohup $BBHOME/bin/bbrun $BBHOME/bin/bb-local.sh >> /dev/null 2>&1 &
BBPID="$BBPID $!"

BBSLEEP=300			# HOW OFTEN TO UPDATE NETWORK (IN SECONDS)

if test "$BBNET" = "TRUE"
then
	# echo "*** CALLING BB-NETWORK ***"
        #####
        #####  Changed by Paul A. Luzzi on 02-03-2000
        #####    because the BBOUT file is getting HUGE and needs
        #####    to be fixed.  In the mean time, send to /dev/null
        #####
	## nohup $BBHOME/bin/bbrun $BBHOME/bin/bb-network.sh >> $BBHOME/BBOUT 2>&1 &
	nohup $BBHOME/bin/bbrun $BBHOME/bin/bb-network.sh >> /dev/null 2>&1 &
	BBPID="$BBPID $!"
fi

BBSLEEP=300			# HOW OFTEN TO UPDATE DISPLAY (IN SECONDS)

if test "$BBDISPLAY" = "TRUE"
then
	# echo "*** CALLING BB-DISPLAY ***"
        #####
        #####  Changed by Paul A. Luzzi on 02-03-2000
        #####    because the BBOUT file is getting HUGE and needs
        #####    to be fixed.  In the mean time, send to /dev/null
        #####
	## nohup $BBHOME/bin/bbrun $BBHOME/bin/bb-display.sh >> $BBHOME/BBOUT 2>&1 &
	nohup $BBHOME/bin/bbrun $BBHOME/bin/bb-display.sh >> /dev/null 2>&1 &
	BBPID="$BBPID $!"
fi

#
# EXECUTE LOCAL SCRIPTS FROM HERE...
# SCRIPTS SHOULD LIVE IN $BBHOME/ext DIRECTORY
# BBEXT CONTAINS THE FILENAMES TO EXECUTE
#
BBEXT="cpu2 dmp ha ipcs iostat logs network prtdiag top vx_group vx_list vx_check printers"
BBSLEEP=300			# HOW OFTEN TO UPDATE EXTERNAL TESTS (IN SECONDS)
for file in $BBEXT 
do
        #####
        #####  Changed by Paul A. Luzzi on 02-03-2000
        #####    because the BBOUT file is getting HUGE and needs
        #####    to be fixed.  In the mean time, send to /dev/null
        #####
	## nohup $BBHOME/bin/bbrun $BBHOME/ext/$file >> $BBHOME/BBOUT 2>&1 &
	nohup $BBHOME/bin/bbrun $BBHOME/ext/$file >> /dev/null 2>&1 &
	BBPID="$BBPID $!"

done

echo $BBPID >> $BBTMP/BBPID
echo "Big Brother started"
echo "Big Brother started" >> $BBHOME/BBOUT
