home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / bin / zdiff < prev    next >
Text File  |  2006-11-29  |  2KB  |  69 lines

  1. #!/bin/sh
  2. # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh
  3.  
  4. # Zcmp and zdiff are used to invoke the cmp or the  diff  pro-
  5. # gram  on compressed files.  All options specified are passed
  6. # directly to cmp or diff.  If only 1 file is specified,  then
  7. # the  files  compared  are file1 and an uncompressed file1.gz.
  8. # If two files are specified, then they are  uncompressed  (if
  9. # necessary) and fed to cmp or diff.  The exit status from cmp
  10. # or diff is preserved.
  11.  
  12. PATH="/usr/bin:$PATH"; export PATH
  13. prog=`echo $0 | sed 's|.*/||'`
  14. case "$prog" in
  15.   *cmp) comp=${CMP-cmp}   ;;
  16.   *)    comp=${DIFF-diff} ;;
  17. esac
  18.  
  19. OPTIONS=
  20. FILES=
  21. for ARG
  22. do
  23.     case "$ARG" in
  24.     -*)    OPTIONS="$OPTIONS $ARG";;
  25.      *)    if test -f "$ARG"; then
  26.             FILES="$FILES $ARG"
  27.         else
  28.             echo "${prog}: $ARG not found or not a regular file"
  29.         exit 2
  30.         fi ;;
  31.     esac
  32. done
  33. if test -z "$FILES"; then
  34.     echo "Usage: $prog [${comp}_options] file [file]"
  35.     exit 2
  36. fi
  37. set $FILES
  38. if test $# -eq 1; then
  39.     FILE=`echo "$1" | sed 's/[-.][zZtga]*$//'`
  40.     gzip -cd "$1" | $comp $OPTIONS - "$FILE"
  41.  
  42. elif test $# -eq 2; then
  43.     case "$1" in
  44.         *[-.]gz* | *[-.][zZ] | *.t[ga]z)
  45.                 case "$2" in
  46.             *[-.]gz* | *[-.][zZ] | *.t[ga]z)
  47.             F=`echo "$2" | sed 's|.*/||;s|[-.][zZtga]*||'`
  48.             TF=`/bin/mktemp ${TMPDIR:-/tmp}/"$F".XXXXXXXXXX` || exit 1
  49.             trap 'rm -f "$TF"; exit 2' 1 2 13 15 0
  50.             gzip -cdfq "$2" > "$TF" || exit
  51.                         gzip -cdfq "$1" | $comp $OPTIONS - "$TF"
  52.                         STAT="$?"
  53.             /bin/rm -f "$TF" || STAT=2
  54.             trap - HUP INT PIPE TERM 0
  55.             exit $STAT;;
  56.  
  57.                 *)      gzip -cdfq "$1" | $comp $OPTIONS - "$2";;
  58.                 esac;;
  59.         *)      case "$2" in
  60.             *[-.]gz* | *[-.][zZ] | *.t[ga]z)
  61.                         gzip -cdfq "$2" | $comp $OPTIONS "$1" -;;
  62.                 *)      $comp $OPTIONS "$1" "$2";;
  63.                 esac;;
  64.     esac
  65. else
  66.     echo "Usage: $prog [${comp}_options] file [file]"
  67.     exit 2
  68. fi
  69.