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

  1. #!/bin/sh
  2. # zforce: force a gz extension on all gzip files so that gzip will not
  3. # compress them twice.
  4. #
  5. # This can be useful for files with names truncated after a file transfer.
  6. # 12345678901234 is renamed to 12345678901.gz
  7.  
  8.  
  9. # Copyright (C) 2002 Free Software Foundation
  10. # Copyright (C) 1993 Jean-loup Gailly
  11.  
  12. # This program is free software; you can redistribute it and/or modify
  13. # it under the terms of the GNU General Public License as published by
  14. # the Free Software Foundation; either version 2, or (at your option)
  15. # any later version.
  16.  
  17. # This program is distributed in the hope that it will be useful,
  18. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20. # GNU General Public License for more details.
  21.  
  22. # You should have received a copy of the GNU General Public License
  23. # along with this program; if not, write to the Free Software
  24. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  25. # 02111-1307, USA.
  26.  
  27.  
  28. PATH="/usr/bin:$PATH"; export PATH
  29. x=`basename $0`
  30. if test $# = 0; then
  31.   echo "force a '.gz' extension on all gzip files"
  32.   echo usage: $x files...
  33.   exit 1
  34. fi
  35.  
  36. res=0
  37. for i do
  38.   if test ! -f "$i" ; then
  39.     echo ${x}: $i not a file
  40.     res=1
  41.     continue
  42.   fi
  43.  
  44.   case "$i" in
  45.   *[-.]z | *[-.]gz | *.t[ag]z) continue;;
  46.   esac
  47.  
  48.   if gzip -l "$i" 2>/dev/null >&2; then
  49.     new="$i.gz"
  50.     if mv "$i" "$new"; then
  51.       echo $i -- replaced with $new
  52.     else
  53.       res=$?
  54.     fi
  55.   fi
  56. done
  57. exit $res
  58.