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