1*0ac9a9daSXin Li#!/bin/sh 2*0ac9a9daSXin Li# sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh 3*0ac9a9daSXin Li 4*0ac9a9daSXin Li# Bzcmp/diff wrapped for bzip2, 5*0ac9a9daSXin Li# adapted from zdiff by Philippe Troin <[email protected]> for Debian GNU/Linux. 6*0ac9a9daSXin Li 7*0ac9a9daSXin Li# Bzcmp and bzdiff are used to invoke the cmp or the diff pro- 8*0ac9a9daSXin Li# gram on compressed files. All options specified are passed 9*0ac9a9daSXin Li# directly to cmp or diff. If only 1 file is specified, then 10*0ac9a9daSXin Li# the files compared are file1 and an uncompressed file1.gz. 11*0ac9a9daSXin Li# If two files are specified, then they are uncompressed (if 12*0ac9a9daSXin Li# necessary) and fed to cmp or diff. The exit status from cmp 13*0ac9a9daSXin Li# or diff is preserved. 14*0ac9a9daSXin Li 15*0ac9a9daSXin LiPATH="/usr/bin:/bin:$PATH"; export PATH 16*0ac9a9daSXin Liprog=`echo $0 | sed 's|.*/||'` 17*0ac9a9daSXin Licase "$prog" in 18*0ac9a9daSXin Li *cmp) comp=${CMP-cmp} ;; 19*0ac9a9daSXin Li *) comp=${DIFF-diff} ;; 20*0ac9a9daSXin Liesac 21*0ac9a9daSXin Li 22*0ac9a9daSXin LiOPTIONS= 23*0ac9a9daSXin LiFILES= 24*0ac9a9daSXin Lifor ARG 25*0ac9a9daSXin Lido 26*0ac9a9daSXin Li case "$ARG" in 27*0ac9a9daSXin Li -*) OPTIONS="$OPTIONS $ARG";; 28*0ac9a9daSXin Li *) if test -f "$ARG"; then 29*0ac9a9daSXin Li FILES="$FILES $ARG" 30*0ac9a9daSXin Li else 31*0ac9a9daSXin Li echo "${prog}: $ARG not found or not a regular file" 32*0ac9a9daSXin Li exit 1 33*0ac9a9daSXin Li fi ;; 34*0ac9a9daSXin Li esac 35*0ac9a9daSXin Lidone 36*0ac9a9daSXin Liif test -z "$FILES"; then 37*0ac9a9daSXin Li echo "Usage: $prog [${comp}_options] file [file]" 38*0ac9a9daSXin Li exit 1 39*0ac9a9daSXin Lifi 40*0ac9a9daSXin Liset $FILES 41*0ac9a9daSXin Liif test $# -eq 1; then 42*0ac9a9daSXin Li FILE=`echo "$1" | sed 's/.bz2$//'` 43*0ac9a9daSXin Li bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE" 44*0ac9a9daSXin Li STAT="$?" 45*0ac9a9daSXin Li 46*0ac9a9daSXin Lielif test $# -eq 2; then 47*0ac9a9daSXin Li case "$1" in 48*0ac9a9daSXin Li *.bz2) 49*0ac9a9daSXin Li case "$2" in 50*0ac9a9daSXin Li *.bz2) 51*0ac9a9daSXin Li F=`echo "$2" | sed 's|.*/||;s|.bz2$||'` 52*0ac9a9daSXin Li tmp=`mktemp "${TMPDIR:-/tmp}"/bzdiff.XXXXXXXXXX` || { 53*0ac9a9daSXin Li echo 'cannot create a temporary file' >&2 54*0ac9a9daSXin Li exit 1 55*0ac9a9daSXin Li } 56*0ac9a9daSXin Li bzip2 -cdfq "$2" > "$tmp" 57*0ac9a9daSXin Li bzip2 -cdfq "$1" | $comp $OPTIONS - "$tmp" 58*0ac9a9daSXin Li STAT="$?" 59*0ac9a9daSXin Li /bin/rm -f "$tmp";; 60*0ac9a9daSXin Li 61*0ac9a9daSXin Li *) bzip2 -cdfq "$1" | $comp $OPTIONS - "$2" 62*0ac9a9daSXin Li STAT="$?";; 63*0ac9a9daSXin Li esac;; 64*0ac9a9daSXin Li *) case "$2" in 65*0ac9a9daSXin Li *.bz2) 66*0ac9a9daSXin Li bzip2 -cdfq "$2" | $comp $OPTIONS "$1" - 67*0ac9a9daSXin Li STAT="$?";; 68*0ac9a9daSXin Li *) $comp $OPTIONS "$1" "$2" 69*0ac9a9daSXin Li STAT="$?";; 70*0ac9a9daSXin Li esac;; 71*0ac9a9daSXin Li esac 72*0ac9a9daSXin Lielse 73*0ac9a9daSXin Li echo "Usage: $prog [${comp}_options] file [file]" 74*0ac9a9daSXin Li exit 1 75*0ac9a9daSXin Lifi 76*0ac9a9daSXin Liexit "$STAT" 77