home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / MISC / GNU / FIND12AS.ZIP / LIB / UPDATEDB.SH < prev   
Encoding:
Linux/UNIX/POSIX Shell Script  |  1990-06-25  |  1.7 KB  |  66 lines

  1. #!/bin/sh
  2. # updatedb -- build fast-find pathname database
  3. # csh original by James Woods; sh conversion by David MacKenzie.
  4. # Public domain.
  5.  
  6. # Non-network directories to put in the database.
  7. SEARCHPATHS="/"
  8.  
  9. # Network directories to put in the database.
  10. NFSPATHS=
  11.  
  12. # Entries that match this regular expression are omitted.
  13. PRUNEREGEX='\(^/tmp$\)\|\(^/usr/tmp$\)\|\(^/var/tmp$\)'
  14.  
  15. # The directory containing the subprograms.
  16. LIBDIR=XLIBDIR
  17.  
  18. # The directory containing find.
  19. BINDIR=XBINDIR
  20.  
  21. # The database file.
  22. FCODES=XFCODES
  23.  
  24. # User(s) to mail error messages about 'sort' overflows to.
  25. FINDHONCHO="root"
  26.  
  27. # User to search network directories as.
  28. NFSUSER=daemon
  29.  
  30. # Directory to hold intermediate files.
  31. TMPDIR=/usr/tmp
  32.  
  33. PATH=$LIBDIR:$BINDIR:/usr/ucb:/bin:/usr/bin export PATH
  34. bigrams=$TMPDIR/f.bigrams$$
  35. filelist=$TMPDIR/f.list$$
  36. errs=$TMPDIR/f.errs$$
  37. trap 'rm -f $bigrams $filelist $errs' 0
  38. trap 'rm -f $bigrams $filelist $errs; exit' 1 15
  39.  
  40. # Make a file list.  Alphabetize '/' before any other char with 'tr'.
  41.  
  42. {
  43. if [ -n "$SEARCHPATHS" ]; then
  44.   find $SEARCHPATHS \
  45.   \( -fstype nfs -o -type d -regex "$PRUNEREGEX" \) -prune -o -print
  46. fi
  47. if [ -n "$NFSPATHS" ]; then
  48.   su $NFSUSER -c \
  49.   "find $NFSPATHS \\( -type d -regex \"$PRUNEREGEX\" -prune \\) -o -print"
  50. fi
  51. } | tr '/' '\001' | sort -f 2> $errs | tr '\001' '/' > $filelist
  52.  
  53. # Compute common bigrams.
  54.  
  55. bigram < $filelist | sort 2>> $errs | uniq -c | sort -nr |
  56.   awk '{ if (NR <= 128) print $2 }' | tr -d '\012' > $bigrams
  57.  
  58. # Code the file list.
  59.  
  60. if test -s $errs; then
  61.   echo 'updatedb: out of sort space' | mail $FINDHONCHO
  62. else
  63.   code $bigrams < $filelist > $FCODES
  64.   chmod 644 $FCODES
  65. fi
  66.