Annotation of pkgsrc/pkglocate, Revision 1.10
1.1 agc 1: #! /bin/sh
2: #
1.10 ! agc 3: # $NetBSD: pkglocate,v 1.9 2004/07/04 16:12:10 jschauma Exp $
1.1 agc 4: #
5: #-
6: # Copyright (c) 2000 The NetBSD Foundation, Inc.
7: # All rights reserved.
8: #
9: # This code is derived from software contributed to The NetBSD Foundation
10: # by Alistair G. Crooks.
11: #
12: # Redistribution and use in source and binary forms, with or without
13: # modification, are permitted provided that the following conditions
14: # are met:
15: # 1. Redistributions of source code must retain the above copyright
16: # notice, this list of conditions and the following disclaimer.
17: # 2. Redistributions in binary form must reproduce the above copyright
18: # notice, this list of conditions and the following disclaimer in the
19: # documentation and/or other materials provided with the distribution.
20: # 3. All advertising materials mentioning features or use of this software
21: # must display the following acknowledgement:
22: # This product includes software developed by the NetBSD
23: # Foundation, Inc. and its contributors.
24: # 4. Neither the name of The NetBSD Foundation nor the names of its
25: # contributors may be used to endorse or promote products derived
26: # from this software without specific prior written permission.
27: #
28: # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
29: # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
30: # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
31: # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
32: # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33: # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34: # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35: # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36: # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37: # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38: # POSSIBILITY OF SUCH DAMAGE.
39: #
40: # Locate words in description, or files in the PLISTs
41: #
1.6 agc 42: # [-i] ignore case when searching
43: # [-f] look for a file, rather than a word or phrase
44: # [-p] use approximate matching
45: # [-v] be verbose
1.1 agc 46: #
47: # Usage: pkglocate [-i] [-p] [-f] [-v] word
48:
49: #set -x
1.5 drochner 50:
51: PATH=${PATH}:/usr/sbin
1.1 agc 52:
1.3 agc 53: case `pkg_info -e 'glimpse-*'` in
54: glimpse-*) grepname=agrep ;;
1.9 jschauma 55: *) grepname=grep ;;
1.3 agc 56: esac
1.1 agc 57:
58: approx=""
59: igncase=""
60: verbose=no
1.7 agc 61: files='*/DESCR'
1.1 agc 62: while [ $# -gt 1 ]; do
63: case $1 in
64: -i) igncase="-i" ;;
1.7 agc 65: -f) files='*/PLIST*' ;;
1.3 agc 66: -p) if [ "$grepname" = "agrep" ]; then approx="-p"; fi ;;
1.1 agc 67: -v) verbose=yes ;;
68: *) break ;;
69: esac
70: shift
71: done
72:
1.3 agc 73: if [ "$verbose" = "yes" ]; then
74: echo "===> Using $grepname to find matches"
75: fi
76:
1.10 ! agc 77: # do we need to show the help message?
! 78: showhelp=false
! 79: case "$1" in
! 80: --help)
! 81: showhelp=true
! 82: ;;
! 83: esac
1.1 agc 84: if [ $# -lt 1 ]; then
1.10 ! agc 85: showhelp=true
! 86: fi
! 87:
! 88: if $showhelp; then
1.6 agc 89: echo "Usage: pkglocate [-i] [-f] [-p] [-v] word"
90: echo " [-i] ignore case when searching"
91: echo " [-f] look for a file, rather than a word or phrase"
1.8 jmmv 92: printf " [-p]"
1.6 agc 93: if [ "$grepname" != "agrep" ]; then
1.8 jmmv 94: printf " (NOT AVAILABLE - needs glimpse package installed)"
1.6 agc 95: fi
96: echo " use approximate matching"
97: echo " [-v] be verbose"
1.1 agc 98: exit 1
99: fi
100:
101: for d in *; do
1.4 agc 102: if [ ! -f $d/Makefile ]; then
1.1 agc 103: # not a valid directory
104: continue
105: fi
106: if [ "$verbose" = "yes" ]; then
107: echo "===> Searching category $d"
108: fi
1.3 agc 109: $grepname $approx $igncase "$@" $d/$files
1.1 agc 110: done
111:
112: exit 0
CVSweb <webmaster@jp.NetBSD.org>