Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / gnu / usr.bin / gzip / zgrep
1 #!/bin/sh
2
3 # zgrep -- a wrapper around a grep program that decompresses files as needed
4 # Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>
5 #
6 # $FreeBSD: src/gnu/usr.bin/gzip/zgrep,v 1.3 1999/08/27 23:35:55 peter Exp $
7 # $DragonFly: src/gnu/usr.bin/gzip/Attic/zgrep,v 1.2 2003/06/17 04:25:46 dillon Exp $
8
9 prog=`echo $0 | sed 's|.*/||'`
10 case "$prog" in
11         *egrep) grep=${EGREP-egrep}     ;;
12         *fgrep) grep=${FGREP-fgrep}     ;;
13         *)      grep=${GREP-grep}       ;;
14 esac
15 A=
16 fileno=0
17 pat=""
18 while test $# -ne 0; do
19   case "$1" in
20   -e | -f) opt="$opt $1"; shift; pat="$1"
21            if test "$grep" = grep; then  # grep is buggy with -e on SVR4
22              grep=egrep
23            fi;;
24   -*)      opt="$opt $1";;
25    *)      if test -z "$pat"; then
26              pat="$1"
27            else
28              fileno=`expr $fileno + 1`
29              eval A$fileno=\$1
30              A="$A \"\$A$fileno\""
31              fi
32              ;;
33   esac
34   shift
35 done
36
37 if test -z "$pat"; then
38   echo "grep through gzip files"
39   echo "usage: $prog [grep_options] pattern [files]"
40   exit 1
41 fi
42
43 list=0
44 silent=0
45 op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
46 case "$op" in
47   *l*) list=1
48 esac
49 case "$op" in
50   *h*) silent=1
51 esac
52
53 if test $fileno -eq 0; then
54   gzip -cdfq | $grep $opt "$pat"
55   exit $?
56 fi
57 eval set "$A" # files in $1, $2 ...
58
59 res=0
60 for i do
61   if test $list -eq 1; then
62     gzip -cdfq "$i" | $grep $opt "$pat" > /dev/null && echo $i
63     r=$?
64   elif test $# -eq 1 -o $silent -eq 1; then
65     gzip -cdfq "$i" | $grep $opt "$pat"
66     r=$?
67   else
68     gzip -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
69     r=$?
70   fi
71   test "$r" -ne 0 && res="$r"
72 done
73 exit $res