#!/bin/sh
#
# certmaster    certmaster
###################################

# LSB header

### BEGIN INIT INFO
# Provides: certmaster
# Required-Start: network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: certificate master for Fedora Unified Network Control 'master server only'
# Description: certificate master to sign/manage ca/cert infrastructure
### END INIT INFO

# chkconfig header

# chkconfig: - 98 99 
# description:  certificate master to sign/manage ca/cert infrastructure
#
# processname: /usr/bin/certmaster

# Sanity checks.
[ -x /usr/bin/certmaster ] || exit 0

SERVICE=certmaster
PROCESS=certmaster
DAEMON=/usr/bin/certmaster
CONFIG_ARGS="--daemon"

CAStatus()
{
  ps wt? | grep "$DAEMON" 2>&1 > /dev/null
  if [ "x$?" = "x0" ]; then
    RVAL=0
    echo "certmaster is running"
  else
    RVAL=3
    echo "certmaster is not running"
  fi
  return $RVAL
}

if [ -f /lib/lsb/init-functions ]; then
  . /lib/lsb/init-functions
  alias START_DAEMON=start_daemon
  alias STATUS=CAStatus
  alias LOG_SUCCESS=log_success_msg
  alias LOG_FAILURE=log_failure_msg
  alias LOG_WARNING=log_warning_msg
elif [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
  alias START_DAEMON=daemon
  alias STATUS=status
  alias LOG_SUCCESS=success
  alias LOG_FAILURE=failure
  alias LOG_WARNING=passed
else
  echo "Error: your platform is not supported by $0" > /dev/stderr
  exit 1
fi

RETVAL=0

start() {
    if [ -f /etc/debian_version ]; then
        log_begin_msg "Starting certmaster daemon: "
        start-stop-daemon --exec $DAEMON --start --quiet -- $CONFIG_ARGS > /dev/null
        RETVAL=$?
        log_end_msg $RETVAL
        return $RETVAL
    else
	echo -n $"Starting certmaster daemon: "
	START_DAEMON $PROCESS $CONFIG_ARGS
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
	return $RETVAL
    fi
}

stop() {
    if [ -f /etc/debian_version ]; then
        log_daemon_msg "Stopping certmaster daemon" "certmaster"
        start-stop-daemon --stop --quiet --pidfile /var/run/certmaster.pid --name certmaster
        RETVAL=$?
        log_end_msg $RETVAL
        rm -f /var/run/certmaster.pid
    else
	echo -n $"Stopping certmaster daemon: "
	killproc $PROCESS
	RETVAL=$?
	echo
	if [ $RETVAL -eq 0 ]; then
	    rm -f /var/lock/subsys/$SERVICE
            rm -f /var/run/$SERVICE.pid
	fi
    fi
}

restart() {
   stop
   start
}

# See how we were called.
case "$1" in
    start|stop|restart)
        $1
        ;;
    status)
        STATUS $PROCESS
        RETVAL=$?
        ;;
    condrestart)
        [ -f /var/lock/subsys/$SERVICE ] && restart || :
        ;;
    reload)
        echo "can't reload configuration, you have to restart it"
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
        exit 1
        ;;
esac
exit $RETVAL

