BSD 4_4 release
[unix-history] / usr / src / usr.bin / locate / locate / updatedb.csh
index df73482..e72c758 100644 (file)
@@ -1,16 +1,51 @@
 #!/bin/csh -f
 #
 #!/bin/csh -f
 #
-#      @(#)updatedb.csh        4.5     (Berkeley)      85/03/24
+# Copyright (c) 1989, 1993
+#      The Regents of the University of California.  All rights reserved.
 #
 #
+# This code is derived from software contributed to Berkeley by
+# James A. Woods.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#      This product includes software developed by the University of
+#      California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+#    may be used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+#      @(#)updatedb.csh        8.1 (Berkeley) 6/6/93
+#
+
 set SRCHPATHS = "/"                    # directories to be put in the database
 set SRCHPATHS = "/"                    # directories to be put in the database
-set LIBDIR = /usr/lib/find             # for subprograms
-set FINDHONCHO = root                  # for error messages
-set FCODES = /usr/lib/find/find.codes  # the database 
+set LIBDIR = /usr/libexec              # for subprograms
+if (! $?TMPDIR) set TMPDIR = /var/tmp  # for temp files
+set FCODES = /var/db/locate.database   # the database
 
 
-set path = ( $LIBDIR /usr/ucb /bin /usr/bin )
-set bigrams = /tmp/f.bigrams$$
-set filelist = /tmp/f.list$$
-set errs = /tmp/f.errs$$
+set path = ( /bin /usr/bin )
+set bigrams = $TMPDIR/locate.bigrams.$$
+set filelist = $TMPDIR/locate.list.$$
+set errs = $TMPDIR/locate.errs.$$
 
 # Make a file list and compute common bigrams.
 # Alphabetize '/' before any other char with 'tr'.
 
 # Make a file list and compute common bigrams.
 # Alphabetize '/' before any other char with 'tr'.
@@ -19,19 +54,51 @@ set errs = /tmp/f.errs$$
 # ('awk', with its associative memory capacity, can do this in several
 # lines, but is too slow, and runs out of string space on small machines).
 
 # ('awk', with its associative memory capacity, can do this in several
 # lines, but is too slow, and runs out of string space on small machines).
 
-nice +10
-find ${SRCHPATHS} -print | tr '/' '\001' | \
-   (sort -f; echo $status > $errs) | \
-   tr '\001' '/' | tee $filelist | $LIBDIR/bigram | \
-   (sort; echo $status >> $errs) | uniq -c | sort -nr | \
-   awk '{ if (NR <= 128) print $2 }' | tr -d '\012' > $bigrams
+# search locally or everything
+# find ${SRCHPATHS} -print | \
+find ${SRCHPATHS} \! -fstype local -prune -or -print | \
+       tr '/' '\001' | \
+       (sort -T /var/tmp -f; echo $status > $errs) | tr '\001' '/' > $filelist
+
+$LIBDIR/locate.bigram < $filelist | \
+       (sort -T /var/tmp; echo $status >> $errs) | \
+       uniq -c | sort -T /var/tmp -nr | \
+       awk '{ if (NR <= 128) print $2 }' | tr -d '\012' > $bigrams
 
 # code the file list
 
 if { grep -s -v 0 $errs } then
 
 # code the file list
 
 if { grep -s -v 0 $errs } then
-       echo 'squeeze error: out of sort space' | mail $FINDHONCHO
+       printf 'locate: updatedb failed\n\n'
 else
 else
-       $LIBDIR/code $bigrams < $filelist > $FCODES
+       $LIBDIR/locate.code $bigrams < $filelist > $FCODES
        chmod 644 $FCODES
        rm $bigrams $filelist $errs
 endif
        chmod 644 $FCODES
        rm $bigrams $filelist $errs
 endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+