#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          etherdraw
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: etherdraw sysv init script
# Description:       collaborative text editor
### END INIT INFO
#

# repertoire d'installation
INSTALLPATH=/usr/share/eole/nodejs/etherdraw

# nom
NAME="Etherdraw"

#Logfile
LOGFILE=/var/log/etherdraw.log

#Node.js binary
NODE="/usr/bin/node"

# launch
LAUNCH="$NODE $NODEOPTS"

# fihchier de log
PIDFILE=/var/run/etherdraw.pid


#Move to the folder where ep-lite is installed
cd $INSTALLPATH

# si node.js n'est pas executable on sort silencieusement
test -x $NODE || exit 0

# chargement des fonctions
. /lib/lsb/init-functions


# fonction d'initialisation
ep_init () {
    #prepare the enviroment
    cd $INSTALLPATH
    ./eoleDeps.sh $* 2>/dev/null || exit 1
}

# fonction de demarrage
ep_start () {
    log_daemon_msg "Starting $NAME"
    eval start-stop-daemon --start --chdir $INSTALLPATH --background --make-pidfile --pidfile $PIDFILE --exec $NODE -- server.js $*
    log_end_msg $?
    return $?
}

# fonction d'arret
ep_stop () {
    log_daemon_msg "Stopping $NAME"
    if [ ! -f $PIDFILE ]
    then
        echo "Etherdraw doesn't seem to be started"
    else
        eval start-stop-daemon --stop --chdir $INSTALLPATH --pidfile $PIDFILE --exec $NODE
        ret=$?
        if [ $ret -eq 0 ]  && rm -f $PIDFILE
        then
        log_end_msg $ret
        fi
        return $ret
    fi
}

# fonction de status
ep_status () {
    if [ -r $PIDFILE ]
    then
        status_of_proc -p $PIDFILE $NODE "$NAME process" && exit 0 || exit $?
    else
        log_daemon_msg "$NAME not running"
    fi
}


case "$1" in
  start)
     ep_init && ep_start || exit 0
     #ep_start || exit 1
     ;;
  stop)
     ep_stop || exit 0
     ;;
  force-reload|restart)
     ep_stop && sleep 3
     ep_init && ep_start || exit 0
     #ep_start || exit 1
     ;;
  status)
     ep_status || exit 0
     ;;
  *)
     echo "Usage: $0 {start|stop|restart|force-reload|status}"
     exit 1
esac

exit 0

