#!/bin/bash
#
#      Helper script bash. Generic functions to other bash script
#		
# VERSION=2
# CHANGES='add cron functions'

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

#### CRON FUNCTIONS ####
function cronUpdate() {
	case ${1} in
		start)
			[ -z "${3}" ] && { echo "invalid command"; exit 1; }
			cronUpdate "stop" "${2}"
			crontab -l >/tmp/crontab.dummy
			echo "${3}" >> /tmp/crontab.dummy
			crontab /tmp/crontab.dummy
			rm -f /tmp/crontab.dummy
			;;
		stop)
			if [ ! -z "$(crontab -l | grep "${2}")" ]; then
				crontab -l | grep -v "${2}" > /tmp/crontab.dummy
				crontab /tmp/crontab.dummy
				rm -f /tmp/crontab.dummy
			fi
			;;
		*)
			echo "invalid usage"
			exit 2
			;;
	esac
}

#### LOG FUNCTIONS ####
__PERMLOG_PATH=/usr/conf/permlog
[ ! -d ${__PERMLOG_PATH} ] && /bin/mkdir -p ${__PERMLOG_PATH}

function rotate() {
	__file=${1}
	for __i in 4 3 2 1; do
		if [ ! -f ${__PERMLOG_PATH}/${__file}.log.$((${__i}-1)) ]; then
			continue
		fi
		cp ${__PERMLOG_PATH}/${__file}.log.$((${__i}-1)) ${__PERMLOG_PATH}/${__file}.log.${__i}
	done
	rm -rf ${__PERMLOG_PATH}/${__file}.log.0
}

function permlog() {
	## init
	__file=${1}
	__prefix=${2}
	__content="${3}"
	## clean old logs
	[ -f ${__PERMLOG_PATH}/${file}.log ] && mv ${__PERMLOG_PATH}/${file}.log ${__PERMLOG_PATH}/${__file}.log.0
	## rotate
	if [ ! -z "${4}" ]; then
		## rotate only at the begining of a process
		## aka, only the first log has the 4th argument
		rotate ${__file}
	fi
	## log
	echo "${__prefix} $(date) ${__content}" | tee -a ${__PERMLOG_PATH}/${__file}.log.0
}
