#!/bin/bash
#
# cargador
#

### BEGIN INIT INFO
# Provides:             cargador
# Required-Start:       $local_fs $remote_fs $network $time
# Required-Stop:        $local_fs $remote_fs $network $time
# Should-Start:         $syslog
# Should-Stop:          $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    cargador service
### END INIT INFO

# Get LSB functions
. /lib/lsb/init-functions
. /etc/default/rcS

PROG=cargador
CARGA_SERVE=/cerebro/cargador/$PROG
CARGA_USER=cargador
CARGA_GROUP=$PROG
# Check that the package is still installed
[ -x $CARGA_SERVE ] || exit 0;

if [ -d /var/run/$PROG ]; then
	PID_FILE=/var/run/$PROG/$PROG.pid
else
	PID_FILE=/var/run/$PROG.pid
fi


waitForExit() {
	for i in {1..15}
	do
		if [ $1 -e $PID_FILE ]; then
			#echo "  Done."
			return 0;
		fi;
		if [ $i -gt 5 ]; then
			echo ... waiting $i sec
		fi;
		sleep 1
	done
	echo Please ensure that daemon user \<$CARGA_USER\> can create PID file $PID_FILE
	return 2;
}


case $1 in
start)
    log_begin_msg "Starting $PROG "
    umask 002

    if 	start-stop-daemon --start \
		--chuid $CARGA_USER:$CARGA_GROUP \
		--exec $CARGA_SERVE \
		-- -D --pid $PID_FILE; then
			if waitForExit ""; then
				log_end_msg 0
				exit 0
			else
				log_end_msg $?
			fi
    else
		log_end_msg $?
    fi
	exit 2
;;

stop)
    log_begin_msg "Stopping $PROG ..."
	if [ ! -e $PID_FILE ]; then
		echo PID file is not found
		#log_end_msg 2
		#exit 1
	fi;

    if start-stop-daemon --stop --exec $CARGA_SERVE; then
		if waitForExit \!; then
			log_end_msg 0
			exit 0
		else
			log_end_msg $?
		fi
    else
		log_end_msg $?
    fi
	exit 2
;;

restart|force-reload)
	"$0" stop && "$0" start
	;;


status)
	echo -n "$PROG pid:"
	if pidofproc $CARGA_SERVE; then
		echo " running"
		exit 0
	else
		echo " NOT running."
		exit 1
	fi
;;

*)
    echo 'Usage: /etc/init.d/$PROG {start|stop|restart|status}'
    exit 1
;;
esac

exit 0
