home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # updatedb -- build fast-find pathname database
- # csh original by James Woods; sh conversion by David MacKenzie.
- # Public domain.
-
- # Non-network directories to put in the database.
- SEARCHPATHS="/"
-
- # Network directories to put in the database.
- NFSPATHS=
-
- # Entries that match this regular expression are omitted.
- PRUNEREGEX='\(^/tmp$\)\|\(^/usr/tmp$\)\|\(^/var/tmp$\)'
-
- # The directory containing the subprograms.
- LIBDIR=XLIBDIR
-
- # The directory containing find.
- BINDIR=XBINDIR
-
- # The database file.
- FCODES=XFCODES
-
- # User(s) to mail error messages about 'sort' overflows to.
- FINDHONCHO="root"
-
- # User to search network directories as.
- NFSUSER=daemon
-
- # Directory to hold intermediate files.
- TMPDIR=/usr/tmp
-
- PATH=$LIBDIR:$BINDIR:/usr/ucb:/bin:/usr/bin export PATH
- bigrams=$TMPDIR/f.bigrams$$
- filelist=$TMPDIR/f.list$$
- errs=$TMPDIR/f.errs$$
- trap 'rm -f $bigrams $filelist $errs' 0
- trap 'rm -f $bigrams $filelist $errs; exit' 1 15
-
- # Make a file list. Alphabetize '/' before any other char with 'tr'.
-
- {
- if [ -n "$SEARCHPATHS" ]; then
- find $SEARCHPATHS \
- \( -fstype nfs -o -type d -regex "$PRUNEREGEX" \) -prune -o -print
- fi
- if [ -n "$NFSPATHS" ]; then
- su $NFSUSER -c \
- "find $NFSPATHS \\( -type d -regex \"$PRUNEREGEX\" -prune \\) -o -print"
- fi
- } | tr '/' '\001' | sort -f 2> $errs | tr '\001' '/' > $filelist
-
- # Compute common bigrams.
-
- bigram < $filelist | sort 2>> $errs | uniq -c | sort -nr |
- awk '{ if (NR <= 128) print $2 }' | tr -d '\012' > $bigrams
-
- # Code the file list.
-
- if test -s $errs; then
- echo 'updatedb: out of sort space' | mail $FINDHONCHO
- else
- code $bigrams < $filelist > $FCODES
- chmod 644 $FCODES
- fi
-