/usr.bin/locate/locate/concatdb.sh

https://bitbucket.org/freebsd/freebsd-head/ · Shell · 70 lines · 24 code · 11 blank · 35 comment · 4 complexity · 1f38650b731b1ae94142e6eeb8b12171 MD5 · raw file

  1. #!/bin/sh
  2. #
  3. # Copyright (c) September 1995 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms, with or without
  7. # modification, are permitted provided that the following conditions
  8. # are met:
  9. # 1. Redistributions of source code must retain the above copyright
  10. # notice, this list of conditions and the following disclaimer.
  11. # 2. Redistributions in binary form must reproduce the above copyright
  12. # notice, this list of conditions and the following disclaimer in the
  13. # documentation and/or other materials provided with the distribution.
  14. #
  15. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  16. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18. # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  19. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  21. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  22. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  23. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  24. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  25. # SUCH DAMAGE.
  26. #
  27. # concatdb - concatenate locate databases
  28. #
  29. # usage: concatdb database1 ... databaseN > newdb
  30. #
  31. # Sequence of databases is important.
  32. #
  33. # $FreeBSD$
  34. # The directory containing locate subprograms
  35. : ${LIBEXECDIR:=/usr/libexec}; export LIBEXECDIR
  36. PATH=$LIBEXECDIR:/bin:/usr/bin:$PATH; export PATH
  37. umask 077 # protect temp files
  38. : ${TMPDIR:=/var/tmp}; export TMPDIR;
  39. test -d "$TMPDIR" || TMPDIR=/var/tmp
  40. # utilities to built locate database
  41. : ${bigram:=locate.bigram}
  42. : ${code:=locate.code}
  43. : ${sort:=sort}
  44. : ${locate:=locate}
  45. case $# in
  46. [01]) echo 'usage: concatdb databases1 ... databaseN > newdb'
  47. exit 1
  48. ;;
  49. esac
  50. bigrams=`mktemp ${TMPDIR=/tmp}/_bigrams.XXXXXXXXXX` || exit 1
  51. trap 'rm -f $bigrams' 0 1 2 3 5 10 15
  52. for db
  53. do
  54. $locate -d $db /
  55. done | $bigram | $sort -nr | awk 'NR <= 128 { printf $2 }' > $bigrams
  56. for db
  57. do
  58. $locate -d $db /
  59. done | $code $bigrams