#!/bin/bash


ScriptDir=/usr/local/bin/monithor-server.d/
SondeFile=/etc/monithor-server/sonde.cfg
source /etc/monithor-server/service.cfg

Exit () {

	[[ "$1" == "root" ]] && echo "You have to be root ..." 
	#[[ "$1" == "Config" ]] && echo "Ip configuration will failed" 

	exit
}

if [[ $(id -u) != "0" ]] 
        then
		Exit root
fi

#[[ -z $(ifconfig  | grep inet | awk '{print $2}' | grep $RemoteIp) ]] && Exit Config



[[ "${Crypted}" == "yes" ]] && NcCmd="cryptcat -k ${LocalPassword} -l ${RemoteIp} -p ${LocalPort} " || NcCmd="nc -l ${RemoteIp} -p ${LocalPort}"

if [[ "${1}" == "start" ]]
	then
		while true 
			do
			#coproc cryptcat -k ${LocalPassword} -l ${RemoteIp} -p ${LocalPort}  
			coproc eval ${NcCmd}
			while read -r cmd; do
				logger "Running $cmd"
				cpt=0
				while read DATA
					do
						Sonde=$(echo ${DATA}| cut -d"#" -f1)
						Exec=$(echo ${DATA}| cut -d"#" -f2)
						RealCmd=$(echo ${cmd} | cut -d"#" -f1)
						ArgCmd=$(echo ${cmd} | cut -d"#" -f2)
						if [[ "${RealCmd}" == "$Sonde" ]]
							then
								logger "Exec $Exec $Arg $cpt"
								[ "$1" == '-d' ] && echo "############ Exec $Exec $Arg $cpt" 1>&2
								bash ${ScriptDir}/${Exec} $ArgCmd
								cpt=$((cpt+1))
								break
						fi
					done < ${SondeFile}
				[[ "${cpt}" -eq 0 ]] && logger "You Failed $Sonde $Exec $Arg"

			done <&"${COPROC[0]}" >&"${COPROC[1]}"
		done &
fi

if [[ "${1}" == "stop" ]]
	then

		for Pid in $(ps axf| grep -E 'nc -l|monithor-server' | grep -v grep | awk '{print $1}' | sort  )
			do
				kill ${Pid}
			done
fi

