Home | History | Annotate | Download | only in bzip2
      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 (at] 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
     40 tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || {
     41       echo 'cannot create a temporary file' >&2
     42       exit 1
     43 }
     44 set $FILES
     45 if test $# -eq 1; then
     46 	FILE=`echo "$1" | sed 's/.bz2$//'`
     47 	bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE"
     48 	STAT="$?"
     49 
     50 elif test $# -eq 2; then
     51 	case "$1" in
     52         *.bz2)
     53                 case "$2" in
     54 	        *.bz2)
     55 			F=`echo "$2" | sed 's|.*/||;s|.bz2$||'`
     56                         bzip2 -cdfq "$2" > $tmp
     57                         bzip2 -cdfq "$1" | $comp $OPTIONS - $tmp
     58                         STAT="$?"
     59 			/bin/rm -f $tmp;;
     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
     72         exit "$STAT"
     73 else
     74 	echo "Usage: $prog [${comp}_options] file [file]"
     75 	exit 1
     76 fi
     77