#!/bin/bash
### BEGIN INIT INFO
# Provides:          mcstransd
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: The daemon to make sensitivity labels human readable form
# Description:       This daemon maps machine readable sensitivity labels
#                    (numbered levels and categories) to a human readable form
#                    (arbitrary names assigned by the sysadmin).
### END INIT INFO
#
# mcstransd        This starts and stops mcstransd
#
# chkconfig: - 08 87
# description: This starts the SELinux Context Translation System Daemon
#
# processname: /sbin/mcstransd
#
# Return values according to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running

PATH=/sbin:/bin:/usr/bin:/usr/sbin
prog="mcstransd"
lockfile=/var/lock/$prog

# Get lsb functions
. /lib/lsb/init-functions
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Allow anyone to run status
if [ "$1" = "status" ] ; then
	status $prog
	RETVAL=$?
	exit $RETVAL
fi

# Check that we are root ... so non-root users stop here
test $EUID = 0  || exit 4

# If selinux is not enabled, return success
test -x /usr/sbin/selinuxenabled && /usr/sbin/selinuxenabled || exit 0

RETVAL=0

start(){
	test -x /sbin/mcstransd  || exit 5
	echo -n $"Starting $prog: "
	if ! [ -d /var/run/setrans ]; then
		rm -rf /var/run/setrans
		install -d -o root -g root /var/run/setrans
		[ -x /sbin/restorecon ] && /sbin/restorecon /var/run/setrans
	fi

	unset HOME MAIL USER USERNAME
	start-stop-daemon --start --quiet --exec /sbin/mcstransd -- "$EXTRAOPTIONS"
	RETVAL=$?
	echo
	if test $RETVAL = 0 ; then
        	touch $lockfile
	fi
	return $RETVAL
}

stop(){
	echo -n $"Stopping $prog: "
	killall $prog
	echo
	rm -f $lockfile
	return 0
}

restart(){
	stop
	start
}

condrestart(){
	[ -e $lockfile ] && restart
	return 0
}


# See how we were called.
case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart|force-reload)
	restart
	;;
    condrestart)
	condrestart
	;;
    *)
	echo $"Usage: $0 {start|stop|status|restart|force-reload|condrestart}"
	RETVAL=3
esac

exit $RETVAL
