cannam@89: #!/bin/sh cannam@89: # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh cannam@89: cannam@89: # Bzcmp/diff wrapped for bzip2, cannam@89: # adapted from zdiff by Philippe Troin for Debian GNU/Linux. cannam@89: cannam@89: # Bzcmp and bzdiff are used to invoke the cmp or the diff pro- cannam@89: # gram on compressed files. All options specified are passed cannam@89: # directly to cmp or diff. If only 1 file is specified, then cannam@89: # the files compared are file1 and an uncompressed file1.gz. cannam@89: # If two files are specified, then they are uncompressed (if cannam@89: # necessary) and fed to cmp or diff. The exit status from cmp cannam@89: # or diff is preserved. cannam@89: cannam@89: PATH="/usr/bin:/bin:$PATH"; export PATH cannam@89: prog=`echo $0 | sed 's|.*/||'` cannam@89: case "$prog" in cannam@89: *cmp) comp=${CMP-cmp} ;; cannam@89: *) comp=${DIFF-diff} ;; cannam@89: esac cannam@89: cannam@89: OPTIONS= cannam@89: FILES= cannam@89: for ARG cannam@89: do cannam@89: case "$ARG" in cannam@89: -*) OPTIONS="$OPTIONS $ARG";; cannam@89: *) if test -f "$ARG"; then cannam@89: FILES="$FILES $ARG" cannam@89: else cannam@89: echo "${prog}: $ARG not found or not a regular file" cannam@89: exit 1 cannam@89: fi ;; cannam@89: esac cannam@89: done cannam@89: if test -z "$FILES"; then cannam@89: echo "Usage: $prog [${comp}_options] file [file]" cannam@89: exit 1 cannam@89: fi cannam@89: tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || { cannam@89: echo 'cannot create a temporary file' >&2 cannam@89: exit 1 cannam@89: } cannam@89: set $FILES cannam@89: if test $# -eq 1; then cannam@89: FILE=`echo "$1" | sed 's/.bz2$//'` cannam@89: bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE" cannam@89: STAT="$?" cannam@89: cannam@89: elif test $# -eq 2; then cannam@89: case "$1" in cannam@89: *.bz2) cannam@89: case "$2" in cannam@89: *.bz2) cannam@89: F=`echo "$2" | sed 's|.*/||;s|.bz2$||'` cannam@89: bzip2 -cdfq "$2" > $tmp cannam@89: bzip2 -cdfq "$1" | $comp $OPTIONS - $tmp cannam@89: STAT="$?" cannam@89: /bin/rm -f $tmp;; cannam@89: cannam@89: *) bzip2 -cdfq "$1" | $comp $OPTIONS - "$2" cannam@89: STAT="$?";; cannam@89: esac;; cannam@89: *) case "$2" in cannam@89: *.bz2) cannam@89: bzip2 -cdfq "$2" | $comp $OPTIONS "$1" - cannam@89: STAT="$?";; cannam@89: *) $comp $OPTIONS "$1" "$2" cannam@89: STAT="$?";; cannam@89: esac;; cannam@89: esac cannam@89: exit "$STAT" cannam@89: else cannam@89: echo "Usage: $prog [${comp}_options] file [file]" cannam@89: exit 1 cannam@89: fi