Parent: [13d550] (diff)

Download this file

rcluncomp    47 lines (38 with data), 1.2 kB

#!/bin/sh
# @(#$Id: rcluncomp,v 1.3 2007-10-27 08:40:25 dockes Exp $  (C) 2004 J.F.Dockes

# Uncompress file using any program like gunzip/bunzip2. We jump through
# hoops to let the decompressor remove the compression suffix in the file
# name. The input directory must be empty on entry.

if test $# != 3 -o ! -f "$2" -o ! -d "$3" ; then 
   echo "Usage: rcluncomp <ucomp_prog> <infile> <outdir>"
   exit 1
fi

uncomp=$1
infile=$2
outdir=$3

sinfile=`basename "$infile"`
#echo "rcluncomp: $sinfile" 1>&2

case "$sinfile" in

  # File with a suffix: try to decompress in file mode so that the
  # decompressor can transform the file name if it knows how. Try
  # filter mode if this fails
  *.*)
    cp "$infile" "$outdir/$sinfile" || exit 1
    # try uncompress
    if $uncomp "$outdir/$sinfile" ; then
       uncompressed=`echo $outdir/*`
    else
       rm -f "$outdir/sinfile"
       $uncomp < "$infile" > "$outdir/$sinfile" || exit 1
       uncompressed="$outdir/$sinfile"
    fi
    ;;

  # Suffixless file names: use filter mode
  *)
	$uncomp < "$infile" > "$outdir/$sinfile" || exit 1
	uncompressed="$outdir/$sinfile"
	;;
esac

cat <<EOF
$uncompressed
EOF