#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          crpdspt
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: CryptoPlus XME daemon
# Description:       CryptoPlus XME daemon provides card data caching.
### END INIT INFO

## Env
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
BIN_PATH=/usr/local/bin
BIN_NAME=crpdspt
DAEMON_NAME=crpdspd
DAEMON=$BIN_PATH/$BIN_NAME
PIDFILE=/var/run/$DAEMON_NAME.pid
DESC="CryptoPlus XM Engine"
ISSUE=/etc/issue

## System check
check_system()
{
	if [ ! -z "$(grep "Ubuntu" $ISSUE)" ] || [ ! -z "$(grep "Debian" $ISSUE)" ] ; then
		echo DEBIAN
	elif [ ! -z "$(grep "Red Hat" $ISSUE)" ] || [ ! -z "$(grep "Fedora" $ISSUE)" ] ; then
		echo RH
	else
		echo OTHER
	fi
}
SYSTEM=$(check_system)

## Loading ext functions 
if [ _$SYSTEM = _DEBIAN ] ; then
	. /lib/lsb/init-functions
elif [ _$SYSTEM = _RH ] ; then
 	. /etc/init.d/functions
fi

## Test daemon
[ -x $DAEMON ] || exit 10

## Functions
daemon_start() 
{
if [ _$SYSTEM = _DEBIAN ] ; then
	log_begin_msg "Starting $DESC: $DAEMON_NAME"
	start-stop-daemon --start --quiet --oknodo --exec $DAEMON && success=1
	log_end_msg $?
elif [ _$SYSTEM = _RH ] ; then
	echo -n $"Starting $DAEMON_NAME: "
	daemon $DAEMON
	RETVAL=$?
	[ $RETVAL = 0 ] && touch /var/lock/subsys/$DAEMON_NAME
        return $RETVAL
else
	$DAEMON
fi
}

daemon_stop()
{
if [ _$SYSTEM = _DEBIAN ] ; then
	log_begin_msg "Stopping $DESC: $DAEMON_NAME"
	start-stop-daemon --stop --quiet --retry 5 --oknodo --name $BIN_NAME && success=1
	log_end_msg $?
elif [ _$SYSTEM = _RH ] ; then	
	echo -n $"Stopping $DAEMON_NAME: "                   
        killproc $BIN_NAME  
        RETVAL=$?                                                                                                                  
        echo                                                                                                                       
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$DAEMON_NAME
else
	killall $BIN_NAME
fi
}

daemon_status()
{
echo -n "Status of $DESC: "
if [ -z $(pidof $DAEMON) ]; then
	echo "$DAEMON_NAME is not running."
	exit 3
else
	echo "$DAEMON_NAME is running."
	exit 0
fi
}




case $1 in
	start)
		daemon_start
	;;
	stop)
		daemon_stop
	;;
	restart)
		daemon_stop
		daemon_start
	;;
	status)
		daemon_status
	;;
	*)
		N=/etc/init.d/${0##*/}
		echo "Usage: $N {start|stop|restart|status}" >&2
		exit 1
	;;
esac

exit 0
