#!/sbin/runscript

# AppleTalk daemons. Make sure not to start atalkd in the background:
# its data structures must have time to stablize before running the
# other processes.

depend() {
	need net
	use logger dns
}

atalk_startup () {
#	. :ETCDIR:/netatalk.conf

	if [ "${ATALKD_RUN}" != "no" ]; then
		ebegin "Starting atalkd"
		start-stop-daemon --start --quiet --exec :SBINDIR:/atalkd
		eend $?

		for reg in \
			"${ATALK_NAME}:Workstation${ATALK_ZONE}" \
			"${ATALK_NAME}:netatalk${ATALK_ZONE}"
		do
			ebegin "  Registering $reg"
			:BINDIR:/nbprgstr "$reg"
			eend $?
		done

		if [ "${PAPD_RUN}" = "yes" ]; then
			ebegin "  Starting papd"
			start-stop-daemon --start --quiet --exec :SBINDIR:/papd
			eend $?
		fi

	fi

	if [ "${CNID_METAD_RUN}" = "yes" ] ; then
        	ebegin "Starting cnid_metad"
		start-stop-daemon --start --quiet --exec :SBINDIR:/cnid_metad
		eend $?
	fi


	if [ "${AFPD_RUN}" = "yes" ]; then
		ebegin "Starting afpd"
		start-stop-daemon --start --quiet --exec :SBINDIR:/afpd -- \
			${AFPD_UAMLIST} -g ${AFPD_GUEST} -c ${AFPD_MAX_CLIENTS} \
			-n "${ATALK_NAME}${ATALK_ZONE}"
		eend $?
	fi

	if [ "${TIMELORD_RUN}" = "yes" ]; then
		ebegin "Starting timelord"
		start-stop-daemon --start --quiet --exec :SBINDIR:/timelord
		eend $?
	fi
}

start () {
	. :ETCDIR:/netatalk.conf

        if [ x"${ATALK_BGROUND}" = x"yes" ]; then
            echo "Starting netatalk in the background ... "
            atalk_startup >& /dev/null &
        else
            atalk_startup
        fi
}

stop () {
	. :ETCDIR:/netatalk.conf

	if [ "${AFPD_RUN}" = "yes" ]; then
		ebegin "Stopping afpd"
		start-stop-daemon --stop --quiet --exec :SBINDIR:/afpd
		eend $?
	fi

	if [ "${TIMELORD_RUN}" = "yes" ]; then
		ebegin "Stopping timelord"
		start-stop-daemon --stop --quiet --exec :SBINDIR:/timelord
		eend $?
	fi

	if [ "${ATALKD_RUN}" != "no" ]; then
		if [ "${PAPD_RUN}" = "yes" ]; then
			ebegin "Stopping papd"
			start-stop-daemon --stop --quiet --exec :SBINDIR:/papd
			eend $?
		fi

		for reg in \
			"${ATALK_NAME}:Workstation${ATALK_ZONE}" \
			"${ATALK_NAME}:netatalk${ATALK_ZONE}"
		do
			ebegin "Unregistering $reg"
			:BINDIR:/nbpunrgstr "$reg"
			eend $?
		done

		ebegin "Stopping atalkd"
		start-stop-daemon --stop --quiet --exec :SBINDIR:/atalkd
		eend $?
	fi

	if [ "${CNID_METAD_RUN}" = "yes" ] ; then
        	ebegin "Stopping cnid_metad"
		start-stop-daemon --stop --quiet --exec :SBINDIR:/cnid_metad
		eend $?
	fi
}
