#!/bin/sh case $1 in ""|"-h"|--help) cat << EOF `basename $0` (C) 1999-2002 Salmaso Raffaele, 2006-2009 PaulTT This program is distribuited under the GNU General Public License You are not allowed to remove the copyright notice usage: `basename $0` file [file2 ... filen] [target-dir] - file* = a list of files to be uncompressed - target-dir = where the uncompressed files have to go `basename $0` can recognize these extensions = .tar.bz .bz .tar.bz2 .bz2 .tar.Z .taz .Z .tz .tar.gz .tgz .7z .rom .bpp .etheme .edj .gz .tar .deb .dsc .ipk .rpm .zip (.exe) .xpi .cbr .rar .ace .cab .jar .xar .lha .lhz EOF exit 0 ;; esac export IFS=$'\n\t' for pkg in $@ do if [ -f "$pkg" ]; then # BEWARE: between $PKGS and $pkg there must # be a damn'd tab character PKGS="$PKGS $pkg" else DEST="$pkg" fi done #set target dir SOURCE="`pwd`" if [ ! "$DEST" = "" ]; then if [ ! -d $DEST ]; then mkdir -p $DEST fi cd $DEST fi for pkg in $PKGS do pkg=$SOURCE/$pkg shopt -s nocasematch case "$pkg" in *.7z) 7z x "$pkg" -o"`basename \"$pkg\" .7z`";; *.tar.bz) bzip -cd "$pkg" | tar xvf - ;; *.bz) bzip "$pkg" ;; *.tar.bz2) bzip2 -cd "$pkg" | tar xvf - ;; *.bz2) bzip2 -d "$pkg" ;; *.tar.Z|*.taz) tar Zxvf "$pkg" ;; *.Z) gunzip "$pkg" ;; *.tar.gz|*.tgz|*.bpp|*.etheme|*.tz) tar zxvf "$pkg" ;; *.gz) gunzip "$pkg" ;; *.tar) tar xvf "$pkg" ;; *.zip|*.cbz|*.xpi|*.exe) unzip -L "$pkg" ;; *.edj) edje_decc "$pkg" ;; *.deb) alien -t -c -g "$pkg" ;; *.ipk) basepkg=`basename "$pkg"` ; ln -s "$basepkg" /tmp/"$basepkg"$$.deb && \ alien -t -c -g /tmp/"$basepkg"$$.deb && \ rm /tmp/"$basepkg"$$.deb ; ;; *.rpm) alien -t -c -g "$pkg" ;; *.dsc) dpkg-source -x "$pkg" ;; *.rom) unzip -L "$pkg" ;; *.cbr|*.rar) unrar x "$pkg" ;; *.ace) unace e "$pkg" ;; *.cab) cabextract "$pkg" ;; *.jar) jar xvf "$pkg" ;; *.xar|*.pkg) xar -xvf "$pkg" ;; *.lha|*.lhz) lha x "$pkg" ;; *) echo "`basename $0`: archive type not supported" ;; esac shopt -u nocasematch done exit $?