#!/bin/sh
#
# $FreeBSD: net/netatalk/files/netatalk.in 300897 2012-07-14 14:29:18Z beat $
#
# PROVIDE: atalkd papd cnid_metad timelord afpd
# REQUIRE: DAEMON  
# KEYWORD: shutdown
#
# AppleTalk daemons. Make sure not to start atalkd in the background:
# its data structures must have time to stablize before running the
# other processes.
#

# Set defaults. Please overide these in /usr/local/etc/netatalk.conf
ATALK_ZONE=
ATALK_NAME="`/bin/hostname -s`"
AFPD_UAMLIST=
AFPD_MAX_CLIENTS=50
AFPD_GUEST=nobody

# Load user config
if [ -f /usr/local/etc/netatalk.conf ]; then . /usr/local/etc/netatalk.conf; fi

netatalk_enable=${netatalk_enable-"NO"}
atalkd_enable=${atalkd_enable-"NO"}
papd_enable=${papd_enable-"NO"}
cnid_metad_enable=${cnid_metad_enable-"NO"}
afpd_enable=${afpd_enable-"NO"}
timelord_enable=${timelord_enable-"NO"}

. /etc/rc.subr

name=netatalk
rcvar=netatalk_enable
hostname=`hostname -s`

start_cmd=netatalk_start
stop_cmd=netatalk_stop

netatalk_start() {
    checkyesno atalkd_enable && /usr/local/sbin/atalkd
    checkyesno atalkd_enable && \
    	/usr/local/bin/nbprgstr -p 4 "${ATALK_NAME}:Workstation${ATALK_ZONE}" &
    checkyesno atalkd_enable && \
    	/usr/local/bin/nbprgstr -p 4 "${ATALK_NAME}:netatalk${ATALK_ZONE}" &
    checkyesno papd_enable && /usr/local/sbin/papd
    checkyesno cnid_metad_enable && /usr/local/sbin/cnid_metad
    checkyesno timelord_enable && /usr/local/sbin/timelord
    checkyesno afpd_enable && \
    	/usr/local/sbin/afpd -n "${ATALK_NAME}${ATALK_ZONE}" \
		-s /usr/local/etc/AppleVolumes.system \
		-f /usr/local/etc/AppleVolumes.default \
		-g ${AFPD_GUEST} \
		-c ${AFPD_MAX_CLIENTS} \
		${AFPD_UAMLIST}
}

netatalk_stop() {
    checkyesno timelord_enable && killall timelord
    checkyesno afpd_enable && killall afpd
    checkyesno cnid_metad_enable && killall cnid_metad
    checkyesno papd_enable && killall papd
    checkyesno atalkd_enable && killall atalkd
}

load_rc_config ${name}
run_rc_command "$1"
