#!/bin/sh

### BEGIN INIT INFO
# Provides:		moosefs-metalogger
# Required-Start:	$network $remote_fs
# Required-Stop:	$remote_fs
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description:	Start moosefs-metalogger at boot time
# Description:		moosefs-metaloggers provide metadata replication for MooseFS.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/mfsmetalogger
NAME=moosefs-metalogger
DEFAULT_USER=mfs
DEFAULT_GROUP=mfs
DEFAULT_DATADIR=/var/lib/mfs
DEFAULT_CFG=/etc/mfs/mfsmetalogger.cfg
COMPAT_CFG=/etc/mfsmetalogger.cfg

test -e $DAEMON || exit 0

# Include moosefs-metalogger defaults if available
. /lib/lsb/init-functions
MFSMETALOGGER_ENABLE=false
MFSMETALOGGER_DEFAULTS_FILE=/etc/default/moosefs-metalogger
MFSMETALOGGER_CONFIG_FILE=
if [ -s "$MFSMETALOGGER_DEFAULTS_FILE" ]; then
	. "$MFSMETALOGGER_DEFAULTS_FILE"
	case "x$MFSMETALOGGER_ENABLE" in
		xtrue) ;;
		xfalse)
			log_warning_msg "$NAME not enabled in \"$MFSMETALOGGER_DEFAULTS_FILE\", exiting..."
			exit 0
			;;
		*)
			log_failure_msg "value of MFSMETALOGGER_ENABLE must be either 'true' or 'false';"
			log_failure_msg "not starting ${NAME}."
			exit 1
			;;
	esac
fi

set -e

if [ -n "$MFSMETALOGGER_CONFIG_FILE" ]; then
	CFGFILE="$MFSMETALOGGER_CONFIG_FILE"
elif [ -f "$DEFAULT_CFG" -o ! -f "$COMPAT_CFG" ]; then
	CFGFILE="$DEFAULT_CFG"
else
	CFGFILE="$COMPAT_CFG"
fi
if [ -s "$CFGFILE" ]; then
	DATADIR=$(sed -e 's/[ 	]#.*$//' -n -e 's/^DATA_PATH[ 	]*=[ 	]*\([^ 	]*\)[ 	]*$/\1/p' "$CFGFILE")
	MFSUSER=$(sed -e 's/[ 	]#.*$//' -n -e 's/^WORKING_USER[ 	]*=[ 	]*\([^ 	]*\)[ 	]*$/\1/p' "$CFGFILE")
	MFSGROUP=$(sed -e 's/[ 	]#.*$//' -n -e 's/^WORKING_GROUP[ 	]*=[ 	]*\([^ 	]*\)[ 	]*$/\1/p' "$CFGFILE")
else
	DATADIR=
	MFSUSER=
	MFSGROUP=
fi
: ${DATADIR:=$DEFAULT_DATADIR}
: ${MFSUSER:=$DEFAULT_USER}
: ${MFSGROUP:=$DEFAULT_GROUP}

case "$1" in
	start)
		echo "Starting ${NAME}:"
		$DAEMON ${MFSMETALOGGER_CONFIG_FILE:+-c $MFSMETALOGGER_CONFIG_FILE} start
		;;

	stop)
		echo "Stopping ${NAME}:"
		$DAEMON ${MFSMETALOGGER_CONFIG_FILE:+-c $MFSMETALOGGER_CONFIG_FILE} stop
		;;

	reload|force-reload)
		echo "Reloading ${NAME}:"
		$DAEMON ${MFSMETALOGGER_CONFIG_FILE:+-c $MFSMETALOGGER_CONFIG_FILE} reload
		;;

	restart)
		echo "Restarting ${NAME}:"
		$DAEMON ${MFSMETALOGGER_CONFIG_FILE:+-c $MFSMETALOGGER_CONFIG_FILE} restart
		;;

	status)
		$DAEMON ${MFSMETALOGGER_CONFIG_FILE:+-c $MFSMETALOGGER_CONFIG_FILE} test 2> /dev/null
		;;

	*)
		N=/etc/init.d/$NAME
		echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
		exit 1
		;;
esac

exit 0
