#!/bin/bash
if [[ "$1" == 'debug'  ]]; then set -x;		_DEBUG=$1; shift; fi
if [[ "$1" == 'debug2' ]]; then set -xvT;	_DEBUG=$1; shift; fi
if [[ "$1" == 'trace'  ]]; then 		_TRACE=$1; shift; fi
####################################################################
####################################################
# - Restart -
# Restart a single module
####################################################
export WATCHER_MODE=restart
#------------------------
REALPATH=`realpath $0`
WHERE=`dirname $REALPATH`
ME=`basename $REALPATH`
cd $WHERE
. ../system.conf
. ../watchermap.conf
. ../common.conf
. ../common.bashlib
#------------------------

_usage() {
local funtag="[${FUNCNAME[0]}]"	
local	choices="(LG,MX,MB,WB,GE*)"

	echo "$ME/$funtag Specify which module to restart: $choices" 
	exit
}

if [ -z "$1" ];then _usage; exit; fi

MODNAME=${1^^}

# Note GeoTrack has no rules
# Must be a regular Watcher process
case $MODNAME in
	LG|MX|MB|WB)	MOD_PROC=Watch$MODNAME	;;
	GE*)		MOD_PROC=GeoTrack	;;	
	*)		_usage
;;
esac

MODULE=modules/$MOD_PROC/$MOD_PROC
HAVEIT=`ps -ef | grep -v grep|  grep -oE $MODULE`

if [ -n "$HAVEIT" ]
then	echo "$ME: Restarting $MOD_PROC"
	killall $MOD_PROC
	TAG="$ME"
else	echo "$ME: Module $MOD_PROC not running"
	echo "$ME: Starting: $MODULE ..."
	TAG="Forced_start"
fi

cd `Masterpath`
$MODULE $TAG >/dev/null 2>&1 &
