#!/bin/sh # # rundig # # $Id: localrundig,v 1.2 2002-01-21 04:06:50 jonas Exp $ # # This is a sample script to create a search database for ht://Dig. # DBDIR=/var/lib/htdig COMMONDIR=/etc/htdig BINDIR=/usr/bin LOCALLIBDIR=/usr/local/lib/htdig LOCALDBDIR=/var/local/lib/htdig # To help debug problems, try running rundig -vvv # This will add lots of debugging output to all of the programs stats= opts= alt= init= for arg do case "$arg" in -a) alt="$arg" ;; -s) stats="$arg" ;; -i) init="$arg" ;; *) opts="$opts $arg" ;; # e.g. -v or -c config esac done config=`echo "$opts"|sed 's/.*-c[[:space:]]\+\([[:alnum:]/.]\+\).*/\1/'` test -n "$config" || config=/etc/htdig/htdig.conf locale=`grep '^locale:' $config | sed -e 's/.*:[[:space:]]*\([[:alnum:]_]\+\).*/\1/'` test -n "$locale" || locale=en_US search_object=`grep '^search_object:' $config | sed -e 's/.*:[[:space:]]*\([[:alnum:]_]\+\).*/\1/'` echo grep '^search_object:' $config | sed -e 's/.*:[[:space:]]*\([[:alnum:]_]\+\).*/\1/' echo "S: $search_object C: $config" test -d $LOCALDBDIR/db/$search_object || mkdir $LOCALDBDIR/db/$search_object # # Set the TMPDIR variable if you want htmerge to put files in a location # other than the default. This is important if you do not have enough # disk space for the big sort that htmerge runs. Also, be aware that # on some systems, /tmp is a memory mapped filesystem that takes away # from virtual memory. # TMPDIR=${TMPDIR:-$DBDIR} export TMPDIR $BINDIR/htdig $init $opts $stats $alt LC_COLLATE=C $BINDIR/htmerge $opts $stats $alt case "$alt" in -a) ( cd $DBDIR && test -f db.docdb.work && for f in *.work do mv -f $f `basename $f .work` done ) ;; esac # If you're low on disk space and you don't mind completely reindexing # every time you run this script, you can always # rm $DBDIR/db.wordlist # OR # If you'd rather run update digs all the time with the minimal databases # Keep only the following files (and don't call htdig with -i): # db.docdb, db.docdb.work, db.docs.index, db.wordlist.work, db.words.db $BINDIR/htnotify $opts # # Create the endings and synonym databases if they don't exist # or if they're older than the files they're generated from. # These databases are semi-static, so even if pages change, # these databases will not need to be rebuilt. case "$locale" in en_*) $BINDIR/htfuzzy $opts metaphone ;; *) $BINDIR/htfuzzy $opts soundex ;; esac if [ "`ls -t $LOCALLIBDIR/lang/$locale/dict.0 $LOCALDBDIR/lang/$locale/word2root.db 2>/dev/null | sed 1q`" = \ "$LOCALLIBDIR/lang/$locale/dict.0" ] then $BINDIR/htfuzzy $opts endings fi if [ "`ls -t $LOCALLIBDIR/lang/$locale/synonyms $LOCALDBDIR/lang/$locale/synonyms.db 2>/dev/null | sed 1q`" = \ "$LOCALLIBDIR/lang/$locale/synonyms" ] then $BINDIR/htfuzzy $opts synonyms fi