#!/bin/sh

log () {
	if [ "${cpch_VERBOSITY}" -gt -1 ]; then
		echo "$*"
	fi
	if [ "${cpch_LOGFILE}" ] && [ "${TIMESTAMP}" -eq 0 ]; then
		echo "$*" >> "$cpch_LOGFILE"
	elif [ "${cpch_LOGFILE}" ] && [ "${TIMESTAMP}" -eq 1 ]; then
		echo "$(date +'%T'):$*" >> "$cpch_LOGFILE"
	fi
}

log_input () {
	while read input_line; do
		[ "${cpch_VERBOSITY}" -gt -1] && echo "$input_line"
		if [ "${cpch_LOGFILE}" ]; then
			if [ "${TIMESTAMP}" -eq 1 ]; then
				echo "$(date +'%T'):$input_line" >> "$cpch_LOGFILE"
			else
				echo "$input_line" >> "$cpch_LOGFILE"
			fi
		fi
	done
}

verbose () {
	if [ "${cpch_VERBOSITY}" -gt 0 ]; then
		echo "$*"
	fi
	if [ "${cpch_LOGFILE}" ] && [ "${TIMESTAMP}" -eq 0 ]; then
		echo "$*" >> "$cpch_LOGFILE"
	elif [ "${cpch_LOGFILE}" ] && [ "${TIMESTAMP}" -eq 1 ]; then
		echo "$(date +'%T'):$*" >> "$cpch_LOGFILE"
	fi
}

err () {
	if [ "${cpch_VERBOSITY}" -gt -2 ]; then
		echo "$*" >&2
	fi
	if [ "${cpch_LOGFILE}" ] && [ "${TIMESTAMP}" -eq 0 ]; then
		echo "$*" >> "$cpch_LOGFILE"
	elif [ "${cpch_LOGFILE}" ] && [ "${TIMESTAMP}" -eq 1 ]; then
		echo "$(date +'%T'):$*" >> "$cpch_LOGFILE"
	fi
}

if [ "$(basename "$0")" = "tool" ]; then
	verb=$1
	shift
else
	verb="$(basename "$0")"
fi

case $verb in
log) log $* ;;
log_input) log_input < /dev/stdin;;
verbose) verbose $* ;;
err) error $* ;;
*) echo "Unsupported verb. Supported verbs:\nlog,log_input,verbose,err" >&2; exit 1
esac
