#!/bin/sh
args="$#"
if [ $args -ne  2  ]
then
        echo "Usage /opt/egurkha/bin/auto_restart [ install | uninstall ] [ manager | agent ] "
        exit
fi

install_mode=$1
entity=$2

if [  $install_mode = "install"  -o    $install_mode = "uninstall" ]
then
        echo ""
else
        echo "Usage /opt/egurkha/bin/auto_restart [ install | uninstall ] [manager | agent ] "
        exit
fi

if [  $entity = "manager"  -o    $entity = "agent" ]
then
        echo ""
else
        echo "Usage /opt/egurkha/bin/auto_restart [ install | uninstall ] [manager | agent ] "
        exit
fi

if [ -f /usr/bin/whoami ]
then
	userName=`/usr/bin/whoami`
else
	userName=`id | cut -d'(' -f2 | cut -d')' -f1`	
fi
if [ ! $userName = "root"  ]
then
	echo "Current user '$userName' does not have permission to execute this script"
        echo "Only super user can execute this script !"
        exit
fi

if [ $entity = "agent" ]
then 
	if [ $install_mode = "install"  ]
	then
		l=`which systemctl | wc -l`
		export l
		if [ "$l" -gt 0 ] && [ -d /etc/systemd/system ]
		then
			cp /opt/egurkha/bin/egagent.service /etc/systemd/system/
			systemctl daemon-reload
			systemctl enable egagent.service
		else
		dir=""
		isRedHat=0
		if [ -d /etc/rc.d ]
		then
			if [ -d /etc/rc.d/init.d ]
			then
				dir="/etc/rc.d/init.d"
				initDir="/etc/rc.d"
			else
				dir="/etc/rc.d"
				initDir="/etc/rc.d"
			fi	
			isRedHat=1
		else
			dir="/etc/init.d"
			initDir="/etc"
		fi
       	 	cp /opt/egurkha/bin/rc.egurkha $dir/egurkha
       	 	chmod 755 $dir/egurkha
		if [ "$isRedHat" -eq "0" ]
		then
			#Ubuntu - default run level is 2
			if [ -L "$initDir/rc2.d/K99egurkha" ] 
			then
				rm -f $initDir/rc2.d/K99egurkha
			fi
			if [ -L "$initDir/rc2.d/S99egurkha" ]
			then
				rm -f $initDir/rc2.d/S99egurkha
			fi
			ln -s $dir/egurkha $initDir/rc2.d/K99egurkha
			ln -s $dir/egurkha $initDir/rc2.d/S99egurkha
		fi	
		if [ -L "$initDir/rc3.d/K99egurkha" ] 
		then
			rm -f $initDir/rc3.d/K99egurkha
		fi
		if [ -L "$initDir/rc3.d/S99egurkha" ]
		then
			rm -f $initDir/rc3.d/S99egurkha
		fi
		ln -s $dir/egurkha $initDir/rc3.d/K99egurkha
		ln -s $dir/egurkha $initDir/rc3.d/S99egurkha
		# added these lines newly. We should add the restart command to
		# rc5.d if X windows is supported. otherwise to rc3.d
		if [ -L "$initDir/rc5.d/K99egurkha" ] 
		then
			rm -f $initDir/rc5.d/K99egurkha
		fi
		if [ -L "$initDir/rc5.d/S99egurkha" ]
		then
			rm -f $initDir/rc5.d/S99egurkha
		fi
		ln -s $dir/egurkha $initDir/rc5.d/K99egurkha
		ln -s $dir/egurkha $initDir/rc5.d/S99egurkha
		fi
    		echo "Successfully installed the auto-restart feature for the eG agent!"
	else
		l=`which systemctl | wc -l`
		export l
		if [ "$l" -gt 0 ] && [ -d /etc/systemd/system ]
		then
			systemctl stop egagent.service
			systemctl disable egagent.service
			rm -f /etc/systemd/system/egagent.service 
			systemctl daemon-reload
			systemctl reset-failed
		else
		if [ -d /etc/rc.d ]
		then
			initDir="/etc/rc.d"
		else
			initDir="/etc"
			rm -f $initDir/rc2.d/K99egurkha
			rm -f $initDir/rc2.d/S99egurkha
		fi
		rm -f $initDir/rc3.d/K99egurkha
		rm -f $initDir/rc3.d/S99egurkha
		rm -f $initDir/rc5.d/K99egurkha
		rm -f $initDir/rc5.d/S99egurkha
        	rm -f $initDir/init.d/egurkha
		rm -f $initDir/egurkha
		fi
		echo "Successfully uninstalled the auto-restart feature for the eG agent."
	fi
fi

if [ $entity = "manager" ]
then 
	if [ $install_mode = "install"  ]
	then
		l=`which systemctl | wc -l`
		export l
		if [ "$l" -gt 0 ] && [ -d /etc/systemd/system ]
		then
			cp /opt/egurkha/bin/egmanager.service /etc/systemd/system/
			systemctl daemon-reload
			systemctl enable egmanager.service
		else
		dir=""
		isRedHat=0
		if [ -d /etc/rc.d ]
		then
			if [ -d /etc/rc.d/init.d ]
			then
				dir="/etc/rc.d/init.d"
			else
				dir="/etc/rc.d"
			fi	
			isRedHat=1
		else
			dir="/etc/init.d"
		fi
       	 	cp /opt/egurkha/bin/rc.egurkha_manager $dir/egurkha_manager
       	 	chmod 755 $dir/egurkha_manager
		if [ "$isRedHat" -eq "1" ]
		then
			initDir="/etc/rc.d"
		else
			initDir="/etc"
			#Ubuntu - default run level is 2
			if [ -L "$initDir/rc2.d/K99egurkha_manager" ]
			then
				rm -f "$initDir/rc2.d/K99egurkha_manager"
			fi
			if [ -L "$initDir/rc2.d/S99egurkha_manager" ]
			then
				rm -f "$initDir/rc2.d/S99egurkha_manager"
			fi
			ln -s $dir/egurkha_manager $initDir/rc2.d/K99egurkha_manager
			ln -s $dir/egurkha_manager $initDir/rc2.d/S99egurkha_manager
		fi	
		if [ -L "$initDir/rc3.d/K99egurkha_manager" ] 
		then
			rm -f $initDir/rc3.d/K99egurkha_manager
		fi
		if [ -L "$initDir/rc3.d/S99egurkha_manager" ]
		then
			rm -f $initDir/rc3.d/S99egurkha_manager
		fi
		ln -s $dir/egurkha_manager $initDir/rc3.d/K99egurkha_manager
		ln -s $dir/egurkha_manager $initDir/rc3.d/S99egurkha_manager
		if [ -L "$initDir/rc5.d/K99egurkha_manager" ] 
		then
			rm -f $initDir/rc5.d/K99egurkha_manager
		fi
		if [ -L "$initDir/rc5.d/S99egurkha_manager" ]
		then
			rm -f $initDir/rc5.d/S99egurkha_manager
		fi
		ln -s $dir/egurkha_manager $initDir/rc5.d/K99egurkha_manager
		ln -s $dir/egurkha_manager $initDir/rc5.d/S99egurkha_manager
		fi
    		echo "Successfully installed the auto-restart feature for the eG manager!"
	else
		l=`which systemctl | wc -l`
		export l
		if [ "$l" -gt 0 ] && [ -d /etc/systemd/system ]
		then
			systemctl stop egmanager.service
			systemctl disable egmanager.service
			rm -f /etc/systemd/system/egmanager.service 
			systemctl daemon-reload
			systemctl reset-failed
		else
		if [ -d /etc/rc.d ]
		then
			initDir="/etc/rc.d"
		else
			initDir="/etc"
			rm -f $initDir/rc2.d/K99egurkha_manager
			rm -f $initDir/rc2.d/S99egurkha_manager
		fi
		rm -f $initDir/rc3.d/K99egurkha_manager
		rm -f $initDir/rc3.d/S99egurkha_manager
		rm -f $initDir/rc5.d/K99egurkha_manager
		rm -f $initDir/rc5.d/S99egurkha_manager
        	rm -f $initDir/init.d/egurkha_manager
		rm -f $initDir/egurkha_manager
		fi
		echo "Successfully uninstalled the auto-restart feature for the eG manager."
	fi
fi




