#!/bin/sh

# /etc/init.d/jmuconfig: start and stop the Encloud service

NAME="encloud"
DAEMON="/usr/sbin/${NAME}"
PIDFILE="/var/run/${NAME}.pid"
ENCLOUD_URL="http://localhost:4804/api/v1/cloud"

die()
{
    echo $@
    exit 1
}

do_start()
{
    if [ -e ${PIDFILE} ]; then
        echo "Already running (${PIDFILE})"
        return
    fi

    echo "Starting ${NAME}"

    /sbin/modprobe tun

    start-stop-daemon --start --background \
        --pidfile "${PIDFILE}" --make-pidfile --exec /bin/bash -- \
        -c "${DAEMON} 2>&1 | logger -t encloud"

    [ $? -ne 0 ] && die "Failed starting daemon"

    #sleep 1
    ## open VPN tunnel via cloud API
    #wget -O - --post-data "action=start" "${ENCLOUD_URL}" >/dev/null 2>&1

    echo "."
}

do_stop()
{
    echo "Stopping ${NAME}"

    #wget -O - --post-data "action=stop" "${ENCLOUD_URL}" >/dev/null 2>&1

    # since we started with bash make sure all children are killed (via PGID)
    if [ -e ${PIDFILE} ]; then
        PID=`cat ${PIDFILE}`
        [ "$PID" != "" ] && kill -- -$(cat /proc/${PID}/stat | cut -d ' ' -f 6) | logger
    fi

    start-stop-daemon --stop --oknodo --pidfile "${PIDFILE}" >/dev/null 2>&1
    [ $? -ne 0 ] && die "Failed stopping daemon"

    rm -f "${PIDFILE}"

    echo "."
}

case "$1" in

  start)
    do_start
    ;;

  stop)
    do_stop
    ;;

  restart)

    do_stop
    sleep 2
    do_start

    echo "."
    ;;

  *)
    echo "Usage: /etc/init.d/${NAME} {start|stop|restart}"
    exit 1
esac

exit 0
