#! /bin/sh
### BEGIN INIT INFO
# Provides:          bootlogd
# Required-Start:
# Required-Stop:
# Default-Start:     S
# Default-Stop:      2 3 4 5
# Short-Description: One of the first scripts to be executed. Starts or stops
#               the bootlogd log program. If this script is called as
#               "stop-bootlogd", it will stop the daemon instead of
#               starting it even when called with the "start" argument.
#
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/sbin/bootlogd
NAME=bootlogd
DESC="Bootlog daemon"

# source function library
. /etc/init.d/functions

test -f $DAEMON || exit 0

[ -r /etc/default/bootlogd ] && . /etc/default/bootlogd

## set -e # not needed

case "$BOOTLOGD_ENABLE" in
	[Nn]*)
		exit 0
		;;
esac

STOPPER=
ACTION="$1"
case "$0" in
	*stop-bootlog*)
		STOPPER=Y
		if [ "$ACTION" = start ]
		then
			ACTION=stop
		fi
		;;
esac

case "$ACTION" in
	start)
		[ "${VERBOSE}" != "no" ] && echo -n "Starting $DESC: "
		if [ -d /proc/1/. ]
		then
			umask 027
			start-stop-daemon --start --quiet \
				--exec $DAEMON -- -r -c
		else
			$DAEMON -r -c
		fi
		[ "${VERBOSE}" != "no" ] && echo "$NAME."
		;;
	stop)
		# stop may get called during bootup, so let it honor
		# rcS VERBOSE setting
		[ "${VERBOSE}" != "no" ] && echo -n "Stopping $DESC: "
		start-stop-daemon --stop --quiet --exec $DAEMON

		if [ "$STOPPER" ] && [ "$(which savelog 2>/dev/null)" ] && \
		   [ -f /var/log/boot ] && [ -f /var/log/boot~ ]
		then
			cd /var/log
			chgrp adm boot
			savelog -p -c 5 boot > /dev/null 2>&1
			mv boot.0 boot
			mv boot~ boot.0
		fi

		[ "${VERBOSE}" != "no" ] && echo "$NAME."
		;;
	 restart|force-reload)
		echo -n "Restarting $DESC: "
		start-stop-daemon --stop --quiet --exec $DAEMON
		sleep 1
		start-stop-daemon --start --quiet --exec $DAEMON
		echo "$NAME."
		;;
	status)
		status $DAEMON
		exit $?
		;;
	*)
		N=${0##*/}
		N=${N#[SK]??}
		echo "Usage: $N {start|stop|status|restart|force-reload}" >&2
		exit 1
		;;
esac

exit 0

