home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / lib / rpm / rpm2cpio.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2006-11-29  |  713b  |  27 lines

  1. #!/bin/sh
  2.  
  3. pkg=$1
  4. if [ "$pkg" = "" -o ! -e "$pkg" ]; then
  5.     echo "no package supplied" 1>&2
  6.    exit 1
  7. fi
  8.  
  9. leadsize=96
  10. o=`expr $leadsize + 8`
  11. set `od -j $o -N 8 -t u1 $pkg`
  12. il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
  13. dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
  14. # echo "sig il: $il dl: $dl"
  15.  
  16. sigsize=`expr 8 + 16 \* $il + $dl`
  17. o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8`
  18. set `od -j $o -N 8 -t u1 $pkg`
  19. il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
  20. dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
  21. # echo "hdr il: $il dl: $dl"
  22.  
  23. hdrsize=`expr 8 + 16 \* $il + $dl`
  24. o=`expr $o + $hdrsize`
  25.  
  26. dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip
  27.