diff options
Diffstat (limited to 'community/dictd/dictd')
-rw-r--r-- | community/dictd/dictd | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/community/dictd/dictd b/community/dictd/dictd new file mode 100644 index 000000000..4f435d6f0 --- /dev/null +++ b/community/dictd/dictd @@ -0,0 +1,92 @@ +#!/bin/bash + +. /etc/conf.d/dictd +. /etc/rc.conf + +. /etc/rc.d/functions + +preconfiguration() { + stat_busy "Check dictd configuration" + if [ ! -e ${DICTD_CONF} ]; then + echo "No configuration" + stat_fail + exit 1 + fi + stat_done + + # The new way of doing this is to scan /usr/lib/dict and tweek the conf + stat_busy "Scanning for dictionaries..." + if [ ! -d "${DICTD_DICTDIR}" ]; then + echo "No dictionaries found" + stat_fail + exit 1 + fi + stat_done + pushd ${DICTD_DICTDIR} >/dev/null + INDEXFILES=`ls *.index` + if [ -z "$INDEXFILES" ]; then + echo "No dictionaries found" + stat_fail + exit 1 + fi + + cat $DICTD_CONF | sed -e '/^#LASTLINE/,$d' > $DICTD_TMPCONF + echo "#LASTLINE" >> $DICTD_TMPCONF + + CNT=0 + for i in $INDEXFILES + do + DNAME=`echo $i | awk -F . '{print $1;}'` + #two possible names for a matching dictionary, check which is there. + if [ -f ${DNAME}.dict.dz ]; then + DICT=${DNAME}.dict.dz + elif [ -f ${DNAME}.dict ];then + DICT=${DNAME}.dict + else + echo "Index $i has no matching dictionaray..." + fi + + #ok, go an index, and a dixtionary, append. + echo "database $DNAME { data \"${DICTD_DICTDIR}/${DICT}\"" >> $DICTD_TMPCONF + echo " index \"${DICTD_DICTDIR}/$i\" }" >> $DICTD_TMPCONF + + CNT=`expr $CNT + 1` + done + popd >/dev/null + mv ${DICTD_TMPCONF} ${DICTD_CONF} + echo "$CNT dictionary indexes found." +} + +PID=`pidof -o %PPID /usr/sbin/dictd` + +case "$1" in + start) + preconfiguration || exit 1 + stat_busy "Start dictd daemon" + /usr/sbin/dictd $DICTD_ARGS -- $DICTD_EARGS + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon dictd + stat_done + fi + ;; + + stop) + stat_busy "Stop dictd daemon" + kill $PID 2>/dev/null 1>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon dictd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac |