#!/bin/bash
# IPC - MASTERSCRIPT (OSEmu)
#

. /var/emu/script/functions.sh
readipccfg
[ -z $OENAME ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OEVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OEBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OEUSER ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OEPASS ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OEPORT ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1

if [ ! -f "$OEBIN" ]; then
	echo ""
	echo -e "\e[1;31m$OENAME wurde deaktiviert!"
	echo -e "Zum Re-aktivieren: \e[0;32mi cams\033[0m"
	echo ""
	exit 1
fi

set -e

DAEMON=/var/emu/osemu/$OEVERSION
NAME=$OENAME
OPTIONS="-a $OEUSER:$OEPASS -p $OEPORT -c $OEKEY -l $OELOG -v"
PIDFILE=/tmp/.osemu/osemu.pid
PATH=/sbin:/bin:/usr/sbin:/usr/bin
CAMNAME="$OENAME"

. /lib/lsb/init-functions

case "$1" in
	start)
		log_daemon_msg "Starting OSEmu" "$OEVERSION"
		[ -d /tmp/.osemu ] || mkdir -p /tmp/.osemu
		start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- $OPTIONS 
		log_end_msg $?
	;;
	stop)
		log_daemon_msg "Stopping OSEmu" "$OEVERSION"
		start-stop-daemon --stop --quiet --pidfile $PIDFILE
		log_end_msg $?
		rm -f $PIDFILE
    ;;
	restart)
		$0 stop & sleep 5 && $0 start
    ;;
	reload|force-reload)
		echo "Reloading $NAME configuration files"
		start-stop-daemon --stop --pidfile $PIDFILE --signal 1 --exec $DAEMON
		echo "."
    ;;
	status)
		status_of_proc $DAEMON $NAME
		exit $?
    ;;
  compile)
		/var/emu/script/osemu-compile.sh $2 $3
	;;
	prev)
		if [ -f  $OEBIN.prev ] ; then
			echo
			echo "Vorherige OScam-Binary wird wiederhergestellt"
			mv $OEBIN.prev $OEBIN
			sleep 3
			echo ""
			echo "$CAMNAME : restart"
			$0 stop & sleep 5 && $0 start
		else
			echo "" && echo -en "\033[1;33mKeine alte Binary vorhanden.\033[0m"  && echo "" && echo ""
		fi
	;;
	log)
		clear
		echo -e "$CAMNAME-Server: \033[1;37mLog\033[0m - Abbrechen mit [Strg]+[C]                  $(date +"%d.%m.%Y %H:%M")"
		echo "==============================================================================="
		echo ""
		if [ -f  $OELOGFILE ] ; then
			tail -f $OELOGFILE
		else
			echo " Keine Logdatei vorhanden." && echo ""
		fi
	;;
  *)
  		clear
		echo -e "\033[1;37m$CAMNAME-Server IPC $IPCVERSION                                         $(date +"%d.%m.%Y %H:%M")\033[0m"
		echo "==============================================================================="
		echo ""
		echo -e "Befehlsliste: \033[1;31mosemu\033[0m"
		echo ""
		echo -e "\033[1;37m  Start, Stop, Restart\033[0m                        \033[0;37mstart | stop | restart\033[0m"
		echo -e "\033[1;37m  Pruefen ob OSEmu laeuft\033[0m                     \033[0;37mstatus\033[0m"
		echo -e "\033[1;37m  Die Config neu laden\033[0m                        \033[0;37mreload\033[0m"
		echo -e "\033[1;37m  Log: Was laeuft\033[0m                             \033[0;37mlog\033[0m"
		echo -e "\033[1;37m  OSEmu kompilieren\033[0m                           \033[0;37mcompile\033[0m"
		echo -e "\033[1;37m  Zuletzt kompilierte Binary wiederherstellen\033[0m \033[0;37mprev\033[0m"
		echo ""
		echo "==============================================================================="
		echo ""
		exit 1
    exit 1
    ;;
esac

exit 0
