#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /usr/lib/courier/courier-authlib/init-d-script
fi
### BEGIN INIT INFO
# Provides:          courier-authdaemon
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

DAEMON="/usr/sbin/authdaemond"
DESC="Courier authentication services"
PIDDIR="/run/courier/authdaemon/"
PIDFILE="/run/courier/authdaemon/pid"

do_start_prepare() {
    mkdir -m 750 -p $PIDDIR
    chown -R courier:courier $PIDDIR
    do_tmpfiles courier-authdaemon
}

do_tmpfiles() {
    local type path mode user group

    TMPFILES=/usr/lib/tmpfiles.d/$1.conf

    if [ -r "$TMPFILES" ]; then
	while read type path mode user group age argument; do
	    if [ "$type" = "d" ]; then
		mkdir -p "$path"
		chmod "$mode" "$path"
		chown "$user:$group" "$path"
		[ -x /sbin/restorecon ] && /sbin/restorecon $path
	    fi
	done < "$TMPFILES"
    fi
}

do_start_cmd_override() {
    mkdir -p $PIDDIR
    if pidofproc ${PIDFILE:+-p ${PIDFILE}} "$DAEMON" >/dev/null; then
            return 0
    fi
    $DAEMON start
    if [ "$?" !=  "0" ]; then
      rm -f $PIDFILE && log_end_msg 1
    else
        chmod 644 $PIDFILE
    fi

}

do_stop_cmd_override() {
    if ! pidofproc ${PIDFILE:+-p ${PIDFILE}} "$DAEMON" >/dev/null; then
        return 0
    fi
    $DAEMON stop
    case "$?" in
      0)   rm -f $PIDFILE;;
      *)   return 1;;
    esac
}

do_status_override() {
    status_of_proc "/usr/lib/courier/courier-authlib/authdaemond" "$NAME" && return 0 || return $?
}
