#! /bin/sh -e
### BEGIN INIT INFO
# Provides:          uuidd
# Required-Start:    $time $local_fs $remote_fs
# Required-Stop:     $time $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: uuidd daemon
# Description:       Init script for the uuid generation daemon
### END INIT INFO
#
# Author:	"Theodore Ts'o" <tytso@mit.edu>
#
set -e

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/uuidd
UUIDD_USER=uuidd
UUIDD_GROUP=uuidd
UUIDD_DIR=@runstatedir@/uuidd
PIDFILE=$UUIDD_DIR/uuidd.pid

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

case "$1" in
  start)
	log_daemon_msg "Starting uuid generator" "uuidd"
	if ! test -d $UUIDD_DIR; then
		mkdir -p $UUIDD_DIR
		chown -R $UUIDD_USER:$UUIDD_GROUP $UUIDD_DIR
	fi
	start_daemon -p $PIDFILE $DAEMON
	log_end_msg $?
    ;;
  stop)
	log_daemon_msg "Stopping uuid generator" "uuidd"
	killproc -p $PIDFILE $DAEMON
	log_end_msg $?
    ;;
  status)
	if pidofproc -p $PIDFILE $DAEMON >/dev/null 2>&1; then
	    echo "$DAEMON is running";
	    exit 0;
	else
	    echo "$DAEMON is NOT running";
	    if test -f $PIDFILE; then exit 2; fi
	    exit 3;
	fi
    ;;
  force-reload|restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: /etc/init.d/uuidd {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

exit 0
