#!@l_prefix@/bin/openpkg rc
##
##  rc.kerberos -- Run-Commands
##

%config
    kerberos_enable="$openpkg_rc_def"
    kerberos_kdc_log="@l_prefix@/var/kerberos/log/krb5kdc.log"
    kerberos_kdc_prolog="true"
    kerberos_kdc_epilog="true"
    kerberos_kdc_numfiles="10"
    kerberos_kdc_minsize="1M"
    kerberos_kdc_complevel="9"
    kerberos_adm_log="@l_prefix@/var/kerberos/log/kadmin.log"
    kerberos_adm_prolog="true"
    kerberos_adm_epilog="true"
    kerberos_adm_numfiles="10"
    kerberos_adm_minsize="1M"
    kerberos_adm_complevel="9"
    kerberos_lib_log="@l_prefix@/var/kerberos/log/krb5lib.log"
    kerberos_lib_prolog="true"
    kerberos_lib_epilog="true"
    kerberos_lib_numfiles="10"
    kerberos_lib_minsize="1M"
    kerberos_lib_complevel="9"
    kerberos_app_log="@l_prefix@/var/kerberos/log/kerberos.log"
    kerberos_app_prolog="true"
    kerberos_app_epilog="true"
    kerberos_app_numfiles="10"
    kerberos_app_minsize="1M"
    kerberos_app_complevel="9"

%common
    krb5kdc_pidfile="@l_prefix@/var/kerberos/run/krb5kdc.pid"
    kadmind_pidfile="@l_prefix@/var/kerberos/run/kadmind.pid"
    krb5kdc_signal () {
        [ -f $krb5kdc_pidfile ] && kill -$1 `cat $krb5kdc_pidfile`
    }
    kadmind_signal () {
        [ -f $kadmind_pidfile ] && kill -$1 `cat $kadmind_pidfile`
    }

%status -u @l_susr@ -o
    kerberos_usable="no"
    kerberos_active="no"
    rcService kerberos enable yes && \
        krb5kdc_signal 0 && kadmind_signal 0 && kerberos_active="yes"
    echo "kerberos_enable=\"$kerberos_enable\""
    echo "kerberos_usable=\"$kerberos_usable\""
    echo "kerberos_active=\"$kerberos_active\""

%start -u @l_susr@
    rcService kerberos enable yes || exit 0
    rcService kerberos active yes && exit 0
    @l_prefix@/sbin/krb5kdc -n &
    echo $! >$krb5kdc_pidfile
    @l_prefix@/sbin/kadmind -nofork &
    echo $! >$kadmind_pidfile

%stop -u @l_susr@
    rcService kerberos enable yes || exit 0
    rcService kerberos active no && exit 0
    krb5kdc_signal TERM
    kadmind_signal TERM
    rm -f $krb5kdc_pidfile 2>/dev/null || true
    rm -f $kadmind_pidfile 2>/dev/null || true

%restart -u @l_susr@
    rcService kerberos enable yes || exit 0
    rcService kerberos active no && exit 0
    rc kerberos stop
    sleep 2
    rc kerberos start

%daily -u @l_susr@
    rcService kerberos enable yes || exit 0
    rcTmp -i
    hintfile=`rcTmp -f -n hint`
    shtool rotate -f \
        -n ${kerberos_kdc_numfiles} -s ${kerberos_kdc_minsize} -d \
        -z ${kerberos_kdc_complevel} -o @l_susr@ -g @l_mgrp@ -m 644 \
        -P "${kerberos_kdc_prolog}" \
        -E "${kerberos_kdc_epilog}; echo 1 >$hintfile" \
        ${kerberos_kdc_log}
    shtool rotate -f \
        -n ${kerberos_adm_numfiles} -s ${kerberos_adm_minsize} -d \
        -z ${kerberos_adm_complevel} -o @s_susr@ -g @m_mgrp@ -m 644 \
        -P "${kerberos_adm_prolog}" \
        -E "${kerberos_adm_epilog}; echo 1 >$hintfile" \
        ${kerberos_adm_log}
    shtool rotate -f \
        -n ${kerberos_lib_numfiles} -s ${kerberos_lib_minsize} -d \
        -z ${kerberos_lib_complevel} -o @l_susr@ -g @l_mgrp@ -m 644 \
        -P "${kerberos_lib_prolog}" \
        -E "${kerberos_lib_epilog}; echo 1 >$hintfile" \
        ${kerberos_lib_log}
    shtool rotate -f \
        -n ${kerberos_app_numfiles} -s ${kerberos_app_minsize} -d \
        -z ${kerberos_app_complevel} -o @l_susr@ -g @l_mgrp@ -m 644 \
        -P "${kerberos_app_prolog}" \
        -E "${kerberos_app_epilog}; echo 1 >$hintfile" \
        ${kerberos_app_log}
    if [ -s $hintfile ]; then
        rc kerberos restart
    fi
    rcTmp -k

