#!/bin/bash
### BEGIN INIT INFO
# Provides:          pkcsslotd
# Required-Start:    $local_fs $remote_fs
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: Start or stop openCryptoki pkcsslotd daemon.
# Description:       pkcsslotd is a daemon which manages cryptographic hardware
#                    tokens for the openCryptoki package.
### END INIT INFO

set -e

DESC="openCryptoki pkcsslotd daemon"
NAME=pkcsslotd

SLOTDBIN=/usr/sbin/pkcsslotd
CONFSTART=/usr/sbin/pkcs11_startup
DEFAULTFILE=/etc/default/pkcsslotd

[ -x $SLOTDBIN ] || exit 0
[ -x $CONFSTART ] || exit 0

[ -f $DEFAULTFILE ] && . $DEFAULTFILE

. /lib/lsb/init-functions
. /etc/default/rcS

case "$PKCSSLOTD_ENABLE" in
  [Nn]*)
    log_warning_msg "To enable $NAME, edit $DEFAULTFILE and set PKCSSLOTD_ENABLE=yes"
    exit 0
    ;;
esac

pkcsslotd_start() {
	$CONFSTART
	log_daemon_msg "Starting $DESC"
	start-stop-daemon --start --quiet --exec $SLOTDBIN
	log_end_msg $?
}

pkcsslotd_stop() {
	log_daemon_msg "Stopping $DESC"
	start-stop-daemon --stop --quiet --oknodo --exec $SLOTDBIN
	log_end_msg $?
}

case "$1" in
  start)
    pkcsslotd_start
    ;;
  stop)
    pkcsslotd_stop
    ;;
  restart|reload|force-reload)
    pkcsslotd_stop
    pkcsslotd_start
    ;;
  *)
    log_success_msg "Usage: $0 {start|stop|restart|reload|force-reload}"
    exit 1
  ;;
esac

exit 0
