#!/bin/bash
### BEGIN INIT INFO
# Provides:       LANCOM-Wireless-ePaper-Server
# Required-Start: $network
# X-UnitedLinux-Should-Start:
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:   0 1 2 6
# Description:    LANCOM Wireless ePaper Server
### END INIT INFO

app="LANCOM Wireless ePaper Server"
path=/opt/LANCOM-Wireless-ePaper-Server-1.101.9441/
pidfile=/tmp/LANCOM-Wireless-ePaper-Server.pid

# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
    echo "This script must be run as root" 1>&2
    exit 4
fi

check_running() {
    if [ -f $pidfile ]
    then
        if ! ps -p `cat $pidfile` > /dev/null
        then 
            echo "Removing stale PID file..."
            rm $pidfile
        fi
    fi
}

wep_server_run() {
    cd $path
    java -Djava.awt.headless=true -Xmx512M -jar server.jar &> output.log & echo $! > $pidfile
}

wep_server_status() {
    if [ -f $pidfile ]
    then
        echo "${app} running"
        exit 0
    else
        echo "${app} not running"
        exit 3
    fi
}

wep_server_start() {
    if [ -f $pidfile ]
    then
        echo "${app} already running"
        exit 1
    fi
    
    echo "Starting ${app}..."
    wep_server_run
}

wep_server_stop() {
	if [ -f $pidfile ]
	then
		echo "Stopping ${app}..."
		kill -TERM `cat $pidfile`
		while ps -p `cat $pidfile` > /dev/null; do sleep 1; done
		rm $pidfile
	fi
}

case "$1" in
    start)
        check_running
        wep_server_start
        ;;
    stop)
        check_running
        wep_server_stop
        ;;
    restart)
        check_running
        wep_server_stop
        wep_server_start
        ;;
    status)
        check_running
        wep_server_status
        ;;
    *)
        echo "Usage: LANCOM-Wireless-ePaper-Server [start|stop|restart|status]"
        exit 1
        ;;
esac
