1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/sh
- #convert a .tar.gz file to .pet...
- #passed param is file to be converted.
- #this works for md5sum returning 8-bit characters!
- # 131122 add support for tar.xz
- sync
- TARBALL=$1
- #chmod +w $TARBALL #make it writable.
- chmod 644 $TARBALL #make it writable.
- #only accept .tgz or .tar.gz files...
- #add txz and tar.xz
- EXT=''
- echo -n "$TARBALL" | grep -q '\.tar\.gz$' && EXT='.tar.gz'
- echo -n "$TARBALL" | grep -q '\.tgz$' && EXT='.tgz'
- echo -n "$TARBALL" | grep -q '\.tar\.xz$' && EXT='.tar.xz'
- echo -n "$TARBALL" | grep -q '\.txz$' && EXT='.txz'
- [ "$EXT" ] || exit 1
- #split TARBALL path/filename into components...
- BASEPKG="`basename $TARBALL $EXT`"
- DIRPKG="`dirname $TARBALL`"
- [ "$DIRPKG" = "/" ] && DIRPKG=""
- case $EXT in
- *gz)OPT=-z;;
- *xz)OPT=-J;;
- esac
- case $EXT in
- *tgz)mv -f $TARBALL $DIRPKG/${BASEPKG}.tar.gz
- TARBALL="$DIRPKG/${BASEPKG}.tar.gz"
- EXT='.tar.gz';;
- *txz)mv -f $TARBALL $DIRPKG/${BASEPKG}.tar.xz
- TARBALL="$DIRPKG/${BASEPKG}.tar.xz"
- EXT='.tar.xz';;
- esac
- #exit
- #if tarball expands direct to '/' want to wrap around it (slackware pkg)... 100628 add -z ...
- #man bad bug here... the thing isn't expanded! #131122
- if [ "`tar ${OPT} --list -f $TARBALL | head -n 1`" = "./" ];then
- # [ -d $DIRPKG/$BASEPKG ] && rm -rf $DIRPKG/$BASEPKG #a bit radical
- [ -d $DIRPKG/$BASEPKG ] && exit 1
- mkdir $DIRPKG/$BASEPKG
- mv $TARBALL $DIRPKG/$BASEPKG/
- (cd $DIRPKG/$BASEPKG/;tar xf $TARBALL;rm $TARBALL)
- #rm $DIRPKG/$BASEPKG/${BASEPKG}${EXT}
- #can put other files in here if want...
-
- tar --remove-files -c -f $DIRPKG/${BASEPKG}.tar $DIRPKG/$BASEPKG/
- case $EXT in
- *gz)gzip --best $DIRPKG/${BASEPKG}.tar ;;
- *xz)xz -z -9 -e $DIRPKG/${BASEPKG}.tar ;;
- esac
- #[ -d $DIRPKG/$BASEPKG ] && rmdir $DIRPKG/$BASEPKG
- fi
- FULLSIZE="`stat --format=%s ${TARBALL}`"
- MD5SUM="`md5sum $TARBALL | cut -f 1 -d ' '`"
- echo -n "$MD5SUM" >> $TARBALL
- sync
- #NEWNAME="`echo -n "${TARBALL}" | sed -e 's/\\.tar\\.gz$/\\.pet/g'`"
- #mv -f $TARBALL $NEWNAME
- mv -f $TARBALL $DIRPKG/${BASEPKG}.pet
- sync
- ###END###
|