#!/bin/sh
###BEGIN INIT INFO########################
#
# start-stop-status
# Starts, stops the TS3 server and
# reports status to the package manager
#
###END INIT INFO##########################

DIR="/var/packages/ts3server/target/teamspeak3-server_linux"
LOGDIR="/var/packages/ts3server/target/teamspeak3-server_linux/logs"
LOG=$(ls -t ${LOGDIR} | grep "ts3server_*" | head -n 2)

cd "$DIR"

TokenMessage ()
{
	if [ ! -f ${LOGDIR}/TOKEN ]; then

		# Wait till the server created the db and logfiles
		sleep 30

		for LOG in $(ls $LOGDIR); do
			if [ "$(cat ${LOGDIR}/${LOG} | grep token | sed -n -e 's/^.*token=//p')" ]; then
				local TOKEN=$(cat ${LOGDIR}/${LOG} | grep token | sed -n -e 's/^.*token=//p')
			fi
		done

		[ -z $TOKEN ] && local TOKEN="NO TOKEN AVAILABLE"

		if [ $TOKEN != "NO TOKEN AVAILABLE" ]; then
			local TITLE="TS3 Server Admin Token"
			local MESSAGE="TS3 Admin Token: $TOKEN"
			# Notify user of ts3server admin token
			synodsmnotify @administrators "$TITLE" "$MESSAGE"
		fi

		echo $TOKEN > ${LOGDIR}/TOKEN
	fi
		TOKEN=$(cat ${LOGDIR}/TOKEN)
		echo -e "TS3 Admin Token: ${TOKEN}" | tee -a $SYNOPKG_TEMP_LOGFILE
}

case $1 in
  start)
    "$DIR/ts3server_startscript.sh" start &
	
		TokenMessage
	
    exit $?
	
  ;;
  stop)
    "$DIR/ts3server_startscript.sh" stop &
    exit $?
  ;;
  status)
    if [ -e "$DIR/ts3server.pid" ]; then
      if ( kill -0 $(cat "$DIR/ts3server.pid") 2> /dev/null ); then
        exit 0  # Server is running
      else
        exit 1  # Server seems to have died
      fi
    else
      exit 2  # No server running (ts3server.pid is missing)
    fi
  ;;
  log)
    cat logs/*.log > /tmp/ts3.log
    echo "/tmp/ts3.log";
    exit 0
  ;;
  *)
    exit 0
  ;;
esac


$TS3_LOG