################################################
#
# Check grey program is running, if not restart program.
#
# @author   TamHo
# @email    tamho@greystonevn.com
# @version  v1.0.0
# @reldate  2013-06-12
################################################

#!/bin/sh
PROCESSFILE=grey
MODULE="gdt2010"

rmmod ahci
#if lsmod | grep "$MODULE" &> /dev/null ; then
#  echo "$MODULE is loaded!"
#else
#  echo "$MODULE is not loaded!"
#  /home/greystone/dfx/load_ASM1061.sh > /dev/null 2>&1 &
#fi

chmod 777 /home/greystone/dfx/grey

while true
do

        ps cax | grep grey > /dev/null
	if [ $? -eq 0 ];then
		echo $PROCESSFILE program is running... ;		
		sleep 20
		
		#Checking the driver is loaded
		if lsmod | grep "$MODULE" &> /dev/null ; then
		    echo "$MODULE is loaded!"
		# Find the purge program
		if [ -f "/home/greystone/dfx/purge" ] ; then
			    echo "Found the purge program!"
			    #check LCD module is loaded
			    isloadedLCD=$(</home/greystone/dfx/.isloadedLCD)
			    echo $isloadedLCD;
			    while [ $isloadedLCD -eq 0 ]
			    do 
				sleep 5 
				isloadedLCD=$(</home/greystone/dfx/.isloadedLCD)
			    done
				  
			    echo "LCD module is loaded!"
			    sleep 7
			    echo '0' > /home/greystone/dfx/.isloadedLCD

			    # Check the purge program is running
			    ps cax | grep purge > /dev/null
			    if [ $? -eq 0 ];then
				echo The purge program is running...
				sleep 60
			    else
				echo Start the purge program
				# Kill the grey program
				mv /home/greystone/dfx/grey /home/greystone/dfx/grey0
				killall grey

				# Start the purge program
				/home/greystone/dfx/purge > /dev/null 2>&1 
			    fi
			  else
			    echo "Not found the purge program!"
			  fi
		else
		  echo "$MODULE is not loaded!"
		fi
	else
		echo $PROCESSFILE program is stopped
		#restart grey program
		/home/greystone/dfx/grey > /dev/null 2>&1
                sleep 10
	fi
done
