#!/bin/bash

### BEGIN INIT INFO
# Provides:          smi
# Required-Start:    autossh mosquitto
# Required-Stop:     autossh mosquitto
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: short message intermediary
# Description:       short message intermediary
### END INIT INFO

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - misc error
# 2 - invalid or excess args
# 3 - unimplemented feature (e.g. reload)
# 4 - insufficient privilege
# 5 - program not installed
# 6 - program not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

# Config-Datei einlesen
source /usr/local/smi/etc/smi.conf

myname=$(echo $0 | $awk -F/ '{ print $NF }')

start_daemon()
{
	echo -n "Starting $myname... "
	# Start des Skripts im Logfile vermerken
	log "$myname" "----------------------"
	log "$myname" "Start $myname begonnen"

	if [ ! -e $logrotatedir/$skriptname ]; then
		log "$myname" "konfiguriere Logfile-Rotation für \"$logSmiDir\""
		cat > "$logrotatedir/$skriptname" << EOF
$logSmiDir/*.log $logSmiTrxDir/*.log $logSmiSubDir/*.log {
	daily
	rotate 7
	copytruncate
	delaycompress
	compress
	notifempty
	missingok
}
EOF
		log "$myname" "done"
	fi
	
	log "$myname" "starting tansceivers"
	for file in $(find "$initTrxDir" -maxdepth 1 -xtype f); do
		log "$myname" "  \"$file\""
		"$file" start > /dev/null 2>&1 &
	done
	log "$myname" "done"

	log "$myname" "starting subscribers"
	for file in $(find "$initSubDir" -maxdepth 1 -xtype f); do
		log "$myname" "  \"$file\""
		"$file" start > /dev/null 2>&1 & 
	done
	log "$myname" "done"
	
	log "$myname" "Start $myname abgeschlossen"
	log "$myname" "----------------------"
	echo "done!"
}

stop_daemon()
{
	echo -n "Stopping $myname... "
	log "$myname" "----------------------"
	log "$myname" "Stop $myname begonnen"

	log "$myname" "stopping subscribers"
	for file in $(find "$initSubDir" -maxdepth 1 -xtype f); do
		log "$myname" "  \"$file\""
		"$file" stop > /dev/null 2>&1
	done
	log "$myname" "done"
	
	log "$myname" "stopping tansceivers"
	for file in $(find "$initTrxDir" -maxdepth 1 -xtype f); do
		log "$myname" "  \"$file\""
		"$file" stop > /dev/null 2>&1
	done
	log "$myname" "done"
	
    log "$myname" "Stop $skriptname abgeschlossen"
    log "$myname" "----------------------"
    echo "done!"

 }


case "$1" in
  start)
    start_daemon
    ;;
  stop)
    stop_daemon
    ;;
  restart)
    stop_daemon
	sleep 3
    start_daemon
    ;;
  *)
     echo "Usage: $0 {start|stop|restart}" >&2
     exit 2
esac
exit 0
