#!/bin/bash


debug=

decho()
{
	if [ $debug ]; then
		echo $*
	fi
}

# $1 hora de analise "H:M"
# $2 (opcional) hora de referencia ou agora
# return 1 if $1 > $2
time_after()
{
	TIME="$1"
	REF="$2"
	if [ -z "${REF}" ]; then
		REF=`date +"%H:%M"`
	fi

	OLD_IFS=${IFS}
	IFS=: 
	read TIME_HOUR TIME_MINUTE <<< "${TIME}"
	read REF_HOUR REF_MINUTE <<< "${REF}"
	IFS=${OLD_IFS}

	if [ ${TIME_HOUR} -gt ${REF_HOUR} ]; then
		decho $REF is not after $TIME '(hour check)'
		return 1
	fi

	if [ ${TIME_HOUR} -eq ${REF_HOUR} ]; then
		if [ ${TIME_MINUTE} -gt ${REF_MINUTE} ]; then
			decho $REF is not after $TIME
			return 1
		fi
	fi

	decho $REF _is_ after $TIME
	return 0
}

# give permission to execution 
# $1 binary
run_stop()
{
	decho "Stop: $1"
	if [ -f "$1" ]; then
		bin_name=`basename $1`
		cp -f ${backup}/${bin_name} $1
		chmod ugo+x $1
	fi
}


# remove permission to execution 
# $1 binary
run_start()
{
	decho "Start: $1"
	if [ -f "$1" ]; then
		bin_name=`basename $1`
		cp -f ${wrapper} ${1}
		chmod ugo+xr $1
		killall ${bin_name} &> /dev/null
	fi
}


# run queue starting or stoping 
# $1 RUNQUEUE
do_runqueue()
{
	TASK=stop
	RUNQUEUE=$1
	for job in $RUNQUEUE
	do 
		OLD_IFS=${IFS}
		IFS=-
		read start stop <<< "${job}"
		IFS=${OLD_IFS}

		if time_after ${start} && ! time_after ${stop}; then
			TASK=start
			continue
		fi
	done

	case ${TASK} in
		start)
		run_start ${exec}
		;;

		stop)
		run_stop ${exec}
		;;
	esac
}


