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