#!/bin/sh
# VERSION=7
# CHANGES="only create log if param given"

CRONBIN=/usr/sbin/crond
CRONDIR=/usr/conf/cron
CRONTAB=${CRONDIR}/root
CRONPID=/var/run/crond
CRONLOG=/var/log/cron.log
CRONOPT="-c ${CRONDIR}"

UPDTIME=/usr/sbin/update-time

PREFIX="[init_cron]"

if [ "${2}" = "createlog" ]; then
	CRONOPT="-c ${CRONDIR} -l8 -L${CRONLOG}"
fi

case "${1}" in
	start)
		if [ -x ${UPDTIME} ]; then
			echo -n "${PREFIX} Updating system-time: "
			${UPDTIME} > /dev/null
			echo "Done."
		fi

		# check if cron is already running.
		cron_running=$(ps -A | grep ${CRONBIN} | grep -v "grep")
		if [ ! -z "${cron_running}" ]; then
			echo "${PREFIX} already running, leaving."
			exit 1
		fi

		# create initial crontab
		echo -n "${PREFIX} Preparing crontab for user 'root': "
		if [ ! -d ${CRONDIR} ] ; then
			mkdir -p ${CRONDIR}
		fi
		if [ ! -f ${CRONTAB} ]; then
			echo "*/15 * * * * ${UPDTIME}" > ${CRONTAB}
		fi
		echo "Done."

		# start crond
		echo -n "${PREFIX} Starting crond: "
		/sbin/start-stop-daemon -S -m -p ${CRONPID} -x ${CRONBIN} -- ${CRONOPT}
		echo "Done."
		;;
	stop)
		# stop crond
		echo -n "${PREFIX} Stopping crond: "
		if [ -f ${CRONPID} ]; then
			/sbin/start-stop-daemon -K -p ${CRONPID} 2> /dev/null
			rm -f ${CRONPID}
			sleep 1
		fi
		killall -9 crond 2> /dev/null
		echo "Done."
		;;
	restart)
		${0} stop
		${0} start
		;;
	*)
		echo "${PREFIX} Usage: ${0} {start|stop|restart}" >&2
		exit 1
		;;
esac
