#!/bin/sh
AT_CFG_FILE=/etc/appletalk.cfg
scutil_Commands=/tmp/.atUpdate-$$
echo "open" > ${scutil_Commands}
echo "lock" >> ${scutil_Commands}
scutil << __END_OF_SCUTIL_COMMAND 2>/dev/null | \
sed -n -e 's/.* = /remove /p' >> ${scutil_Commands}
open
list ^State:/Network/Global/AppleTalk\$ regex
close
quit
__END_OF_SCUTIL_COMMAND
CHECK=1
LIMIT=10
while [ 1 ]
do
appletalk -d >/dev/null 2>&1
status=$?
case "${status}" in
0 ) break
;;
89 ) break
;;
esac
CHECK=`expr ${CHECK} + 1`
if [ ${CHECK} -le ${LIMIT} ]; then
sleep 1
continue
else
logger -i -p daemon.notice -t restart-AppleTalk "AppleTalk shutdown failed (status=${status})"
break
fi
done
if [ ! -f ${AT_CFG_FILE} ]; then
echo "unlock" >> ${scutil_Commands}
echo "close" >> ${scutil_Commands}
echo "quit" >> ${scutil_Commands}
if [ `cat ${scutil_Commands} | wc -l` -gt 5 ]; then
scutil < ${scutil_Commands}
fi
rm ${scutil_Commands}
exit 0
fi
. /etc/rc.common
ATO=""
if [ "${APPLETALK_HOSTNAME:=-AUTOMATIC-}" != "-AUTOMATIC-" ]; then
APPLETALK_HOSTNAME=`echo "X${APPLETALK_HOSTNAME}" | sed -e 's/^X//' -e 's/"/\\\\"/g' -e '/[ <>]/s/\(.*\)/"\1"/'`
ATO="-C ${APPLETALK_HOSTNAME}"
fi
if [ "${APPLETALK:=-NO-}" != "-NO-" ]; then
case "${APPLETALK}" in
-ROUTER-)
eval appletalk ${ATO} -r -q
;;
-MULTIHOME-)
eval appletalk ${ATO} -x -q
;;
*)
eval appletalk ${ATO} -u ${APPLETALK} -q
;;
esac
fi
echo "d.init" >> ${scutil_Commands}
echo "get Setup:/Network/Global/AppleTalk" >> ${scutil_Commands}
if [ -z "${ATO}" ]; then
echo "d.add ComputerName `uname -n`" >> ${scutil_Commands}
fi
echo "set State:/Network/Global/AppleTalk" >> ${scutil_Commands}
echo "unlock" >> ${scutil_Commands}
echo "close" >> ${scutil_Commands}
echo "quit" >> ${scutil_Commands}
if [ `cat ${scutil_Commands} | wc -l` -gt 5 ]; then
scutil < ${scutil_Commands} > /dev/null 2>&1
fi
rm ${scutil_Commands}
exit 0