#! /bin/sh
### BEGIN INIT INFO
# Provides:          eole-client
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: eole-client initscript
# Description:       gestionnaire de client  demarrage/arret
### END INIT INFO
#
# Author:	Equipe Eole <eole@ac-dijon.fr>.
#
# Version:	@(#)eole-client 1.0  13-Nov-2006  eole@ac-dijon.fr
#

#set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PYTHONPATH=/usr/share/eole/
DESC="Eole Client"
LDESC="service Eole Client"
NAME=eole-client
PIDFILE=/var/run/$NAME.pid
LOCK_FILE=/var/lock/eole-client
LOG_FILE=/var/log/eole-client/main.log
LOG_DIR=/var/log/eole-client
EOLE_CLIENT=/usr/share/eole/client/eole_client_serveur.py
SCRIPTNAME=/etc/init.d/$NAME


. /lib/lsb/init-functions

export PYTHONPATH

export LC_ALL=fr_FR.UTF-8
export LANG=fr_FR.UTF-8

d_start() {
	log_begin_msg "Starting $DESC: $NAME"
	if [ -f $PIDFILE ]
	then
                log_end_msg 1
	else
		[ ! -e $LOG_DIR ] && mkdir -p LOG_DIR
		#/usr/bin/env twistd -oy $EOLE_CLIENT --logfile=$LOG_FILE --pidfile=$PIDFILE
		start-stop-daemon --start --quiet --exec /usr/bin/twistd -- \
                          --pidfile=$PIDFILE \
                          --rundir=/usr/share/eole/client \
                          --python=$EOLE_CLIENT \
                          --logfile=$LOG_FILE
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch $LOCK_FILE
		[ $RETVAL -eq 1 ] && log_failure_msg "already running"
		log_end_msg $RETVAL
	fi
}

#
#	Function that stops the daemon/service.
#
d_stop() {
	log_begin_msg "Stopping $DESC: $NAME"
	[ -f $PIDFILE ] && pid=`cat $PIDFILE`
    	start-stop-daemon --stop -o --quiet --pidfile $PIDFILE
	kill -TERM $pid >/dev/null 2>&1
	rm -f $PIDFILE
	rm -f $LOCK_FILE
        log_end_msg 0
}

case "$1" in
  start)
	d_start
	;;
  stop)
	d_stop
	;;
  restart|force-reload)
	d_stop
	sleep 2
	d_start
	;;
  status)
	if [ ! -f "$PIDFILE" ]
	then echo " $LDESC est arrete\n"
	     exit 3
	fi
	pid=`cat $PIDFILE`
	kill -0 $pid >/dev/null 2>&1
	if [ "$?" -eq "0" ]
	then echo " $LDESC (pid $pid) est actif ..."
	     exit 0
	fi
	echo " $LDESC est arrete\n"
	exit 3
	;;
  *)
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

exit 0
