#!/bin/sh

# @version	2015-08-15
# @env		run by DSM, $SYNOPKG_PKGDEST example: "/volume1/@appstore/JDownloader"

[ ${SYNOPKG_PKGDEST} ] || SYNOPKG_PKGDEST=`ls -l /var/packages/JDownloader/target | cut -d\> -f2 | cut -d\  -f2`

JAVA_HOME=$(cat /etc/profile|awk '/JAVA_HOME=/ { print $1 }'|tail -c +11)
JAVA_BIN="${JAVA_HOME}/bin/java"
JAVA_OPTIONS="-Djava.awt.headless=true -jar"
DAEMON="${SYNOPKG_PKGDEST}/JDownloader.jar"
JD2_NAME="JDownloader"

start() {
  pid=$(pidof java)
       grep -q "JDownloader" /proc/$pid/cmdline
   if [ $? -eq 0 ]; then
   echo "$JD2_NAME is already running, aborting ..."
   exit
   else
   echo "Starting ${JD2_NAME} ..."
   nohup ${JAVA_BIN} ${JAVA_OPTIONS} ${DAEMON} >/dev/null 2>&1 &
   fi
}

stop() {
  PROCESS_PID=0
  for pid in $(pidof java); do
    # Try to find if the process is JDownloader
        grep -q "JDownloader" /proc/$pid/cmdline
    if [ $? -eq 0 ]; then
    # Process found, save PID and exit loop
    PROCESS_PID=$pid
    echo "Shutting down $JD2_NAME... "
    i=0
    kill $PROCESS_PID
    echo -n "Waiting for $JD2_NAME to shut down: "
    while [ -d /proc/$PROCESS_PID ]; do
      sleep 1
      let i+=1
      echo -n "$i, "
      if [ $i = 45 ]; then
        echo "   Tired of waiting, killing $JD2_NAME now"
        kill -9 $PROCESS_PID
        exit 1
      fi
    done
    echo "Done"
  fi
done
  }

case $1 in
	start)	start
			;;
	stop)	stop
			;;
	restart)stop
			start
			;;
	status)	exit 0
			;;
	*)		echo -e "JDownlaoder package\n\nUsage:\n\t$0 (start|stop|restart)\n"
			;;
esac
exit 0 
