home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BUG 1
/
BUGCD1996_0708.ISO
/
pc
/
util
/
minilin
/
minilin.exe
/
USR
/
BIN
/
UPDATEDB
< prev
next >
Wrap
Text File
|
1993-11-27
|
2KB
|
78 lines
#!/bin/sh
# updatedb -- build locate pathname database
# csh original by James Woods; sh conversion by David MacKenzie.
# Public domain.
PATH=/bin:/usr/bin # Just temporarily.
# You can set these in the environment to override their defaults:
# Non-network directories to put in the database.
test -z "$SEARCHPATHS" && SEARCHPATHS="/"
# Network directories to put in the database.
test -z "$NFSPATHS" && NFSPATHS=
# Pathnames that match this regular expression are not searched.
test -z "$PRUNEREGEX" &&
PRUNEREGEX='\(^/tmp$\)\|\(^/usr/tmp$\)\|\(^/var/tmp$\)'
# User(s) to mail error messages about `sort' overflows to.
test -z "$FINDHONCHO" && FINDHONCHO="root"
# User to search network directories as.
test -z "$NFSUSER" && NFSUSER=daemon
# Directory to hold intermediate files.
test -z "$TMPDIR" && TMPDIR=/usr/tmp
# The database file to build.
test -z "$LOCATE_DB" && LOCATE_DB=/usr/local/lib/locate/find.codes
# These you probably won't need to override:
# The directory containing the subprograms.
LIBDIR=/usr/local/lib/locate
# The directory containing find.
BINDIR=/usr/local/bin
# Any prefix in the GNU find filename, before `find'.
binprefix=
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 test -n "$SEARCHPATHS"; then
${binprefix}find $SEARCHPATHS \
\( -fstype nfs -o -type d -regex "$PRUNEREGEX" \) -prune -o -print
fi
if test -n "$NFSPATHS"; then
su $NFSUSER -c \
"${binprefix}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 > $LOCATE_DB
chmod 644 $LOCATE_DB
fi