#!/bin/sh
#
# Authors: Mihai Dumitru <mihai.dumitru@siemens.com>
#	   Vlad Ungureanu <vlad.ungureanu@siemens.com>
#
# /etc/init.d/replacement
#
### BEGIN INIT INFO
# Provides: NodeReplacement
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Starts the needed services for a replacement
### END INIT INFO

REPLACEMENT_SH=/opt/replacement/NodeReplacement.sh
CONFIG_SH=/opt/replacement/configure_NodeReplacement.sh
PID_FILE=/var/replacement/pid

[ ! -e $REPLACEMENT_SH ] && echo "$REPLACEMENT_SH does not exist" && exit 1

. /etc/rc.status

run_config()
{
	[ ! -x $CONFIG_SH ] && chmod u+x $CONFIG_SH
	$CONFIG_SH 2>&1 1>/var/log/configure_replacement.log 
}

rc_reset
case "$1" in
	start)
		( checkproc -p $PID_FILE /bin/bash ) && echo "The replacement service is already running." && exit 2
		echo -n "Starting NodeReplacement..."

		[ ! -x $REPLACEMENT_SH ] && chmod u+x $REPLACEMENT_SH
		startproc -f -p $PID_FILE /bin/bash $REPLACEMENT_SH "$2"
		rc_status -v
	;;
	stop)
		echo -n "Stopping NodeReplacement"
		#service replacement stop recovery_script_started
		echo "$2" > /var/replacement/userstop
		killproc -p $PID_FILE -TERM -t20 /bin/bash
		rm -f /var/replacement/userstop
		grep -qi "stopped by user" /var/opt/sysinfo/input/replacement_info.xml || rm /var/opt/sysinfo/input/replacement_info.xml
		rc_status -v
	;;
	status)
		echo -n "Checking for service (`basename $REPLACEMENT_SH`)"
		checkproc -p $PID_FILE /bin/bash
		rc_status -v
	;;
	config)
		( checkproc -p $PID_FILE /bin/bash ) && echo "The replacement service is running. Plase stop it first." && exit 5
		$CONFIG_SH
	;;
	*)
	echo "Usage: $0 {start|stop|status|config}"
	exit 6
	;;
esac
rc_exit

