#! /bin/sh

ask() {
    local question default answer

    question=$1
    default=$2
    if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
        read -p "${question} [${default}]? " answer
    fi
    if [ x${answer} = x ]; then
        answer=${default}
    fi
    echo ${answer}
}

yesno() {
    local dflt question answer

    question=$1
    dflt=$2
    while :; do
        answer=$(ask "${question}" "${dflt}")
        case "${answer}" in
        [Yy]*)          return 0;;
        [Nn]*)          return 1;;
        esac
        echo "Please answer yes or no."
    done
}

init_plugins() {
    if [ -f ${PKG_PREFIX}/etc/munin/VERSION.node ]; then
	prevver=$(cat ${PKG_PREFIX}/etc/munin/VERSION.node)
    fi

    if [ -n "$prevver" ]; then
	echo -n "Initializing new plugins.."
	${PKG_PREFIX}/sbin/munin-node-configure --shell --newer "${prevver%-*}" | sh -x
    else
	echo -n "Initializing plugins.."
	${PKG_PREFIX}/sbin/munin-node-configure --shell | sh -x
    fi
    echo "done."
}

create_crontab_entries() {
    local sched prog
    sched=$1
    prog=$2

    if grep -q "^[^#]*$prog" /etc/crontab; then
	echo "It looks like your crontab is already set up, so I'll use that."
    else
	echo "It looks like your perl suffers from unsafe signals."
	if yesno "Would you like me to set up your root crontab to restart munin-node" y; then
	    cat <<EOT >>/etc/crontab
$sched	root	$prog
EOT
	else
	    echo "You may suffer from munin-node crashing after log rotation."
	    echo "If you still want to restart munin-node, use $prog."
	fi
    fi
}

newsyslog() {
    if yesno "Would you like me to set up log rotation" y; then
	if grep -q /var/log/munin/munin-node.log /etc/newsyslog.conf; then
	    :
	else
	    cat >> /etc/newsyslog.conf <<EOT
/var/log/munin/munin-node.log			644  7	   *	@T00  Z	/var/run/munin/munin-node.pid
EOT
	fi
	if [ -f ${PKG_PREFIX}/bin/munin-node-revive ]; then
	    create_crontab_entries '4	*	*	*	*' ${PKG_PREFIX}/bin/munin-node-revive
	fi
    else
	echo "/var/log/munin-node.log will grow without bounds."
    fi
}


########################################################################

case $2 in
    PRE-INSTALL)
	;;      
    POST-INSTALL)
	if [ -z "${PACKAGE_BUILDING}" ]; then
		init_plugins
		${PKG_PREFIX}/etc/rc.d/munin-node start
		newsyslog
	fi
	;;      
esac
