[BACK]Return to pkglocate CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc

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>