#!/bin/bash

#  weavedschannel.sh
#  startup script for the server channel listener
#  one instance of this can serve all installed Weaved daemons
#  Weaved, Inc. Copyright 2016. All rights reserved.
#

VERSION="v1.34"
AUTHOR="Gary Worsham"
MODIFIED="June 30, 2016"
DAEMON=schannel.pi
BIN_DIR=/usr/bin
PID_DIR=/var/run
BIN_PATH=$BIN_DIR/$DAEMON
CONF_FILE=/etc/weaved/schannel.conf
PIDPATH=$PID_DIR/$DAEMON.pid
LOG_FILE=/dev/null
LOG_DIR=/var/log


##### Version #####
displayVersion()
{
    printf "Weaved server channel daemon start/stop script Version: %s \n" "$VERSION"
    # check for sudo user at this point
    if [[ $EUID -ne 0 ]]; then
        echo "Running $0 requires root access." 1>&2
        echo "Please run sudo $0" 1>&2
	exit 1
    fi
}
##### End Version #####


checkPID()
{
	if [ -f $PIDPATH ]; then
		runningPID="$(cat $PIDPATH)"
	fi
}

isRunning()
{
	isRunning="$(ps ax | grep -w $DAEMON | grep -v grep | wc -l)"
}

stopWeaved()
{
	isRunning
	checkPID
	if [ $isRunning != 0 ]; then
		if [ "$2" != "-q" ]; then
			echo "Stopping $DAEMON..."
		fi
		sudo kill $runningPID 2> /dev/null
		sudo rm $PIDPATH 2> /dev/null
	else
		if [ "$2" != "-q" ]; then
			echo "$DAEMON not currently active. Nothing to stop."
		fi
	fi
}

startWeaved()
{
	isRunning
	if [ $isRunning = 0 ]; then
		if [ "$2" != "-q" ]; then
			echo "Starting $DAEMON..."
		fi
		sudo $BIN_DIR/$DAEMON -f $CONF_FILE -d $PID_DIR/$DAEMON.pid
	else
		if [ "$2" != "-q" ]; then
			echo "$DAEMON is already started"
		fi
	fi
}

restartWeaved()
{
	stopWeaved
	sleep 2
	startWeaved
}

displayVersion

if [ -z $1 ]; then
	echo "You need one of the following arguments: start|stop|restart"
	exit
elif [ "$(echo "$1" | tr '[A-Z]' '[a-z]' | tr -d ' ')" = "stop" ]; then 
	stopWeaved
elif [ "$(echo "$1" | tr '[A-Z]' '[a-z]' | tr -d ' ')" = "start" ]; then
	startWeaved
elif [ "$(echo "$1" | tr '[A-Z]' '[a-z]' | tr -d ' ')" = "restart" ]; then
	restartWeaved
else
	echo "This option is not supported"
fi

