wok rev 4355

xarchive: add xz support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Oct 04 15:34:46 2009 +0200 (2009-10-04)
parents a8aaec062c69
children 1c4d8c3770a5
files xarchive/stuff/slitaz-wrap.sh
line diff
     1.1 --- a/xarchive/stuff/slitaz-wrap.sh	Sun Oct 04 09:50:24 2009 +0000
     1.2 +++ b/xarchive/stuff/slitaz-wrap.sh	Sun Oct 04 15:34:46 2009 +0200
     1.3 @@ -25,10 +25,12 @@
     1.4  GZIP_EXTS="tar.gz tgz"
     1.5  LZMA_EXTS="tar.lz tar.lzma tlz"
     1.6  BZIP2_EXTS="tar.bz tbz tar.bz2 tbz2"
     1.7 +XZ_EXTS="tar.xz txz"
     1.8  COMPRESS_EXTS="tar.z tar.Z"
     1.9  IPK_EXTS="ipk"
    1.10  CPIO_EXTS="cpio"
    1.11  CPIOGZ_EXTS="cpio.gz"
    1.12 +CPIOXZ_EXTS="cpio.xz"
    1.13  ZIP_EXTS="zip cbz jar"
    1.14  RPM_EXTS="rpm"
    1.15  DEB_EXTS="deb"
    1.16 @@ -36,7 +38,7 @@
    1.17  ISO_EXTS="iso"
    1.18  SQUASHFS_EXTS="sqfs squashfs"
    1.19  CROMFS_EXTS="cromfs"
    1.20 -FS_EXTS="ext2 ext3 dos fat vfat fd fs loop"
    1.21 +FS_EXTS="ext2 ext3 dos fat vfat xfs fd fs loop"
    1.22  CLOOP_EXTS="cloop"
    1.23  RAR_EXTS="rar cbr"
    1.24  LHA_EXTS="lha lzh lzs"
    1.25 @@ -114,6 +116,13 @@
    1.26          COMPRESS="lzma e -si -so"
    1.27      fi
    1.28  done
    1.29 +for ext in $XZ_EXTS $CPIOXZ_EXTS; do
    1.30 +    if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    1.31 +        [ -x /usr/bin/rx ] || exit $E_UNSUPPORTED
    1.32 +        DECOMPRESS="xz -dc"
    1.33 +        COMPRESS="xz -c"
    1.34 +    fi
    1.35 +done
    1.36  for ext in $COMPRESS_EXTS; do
    1.37      if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    1.38          DECOMPRESS="uncompress -dc" 
    1.39 @@ -198,7 +207,8 @@
    1.40           [ "$(which bzip2)" ] || return
    1.41      fi
    1.42      if not_busybox tar && [ "$action" != "new_archive" ]; then
    1.43 -	for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS; do
    1.44 +	for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $XZ_EXTS \
    1.45 +		   $COMPRESS_EXTS $LZMA_EXTS; do
    1.46              if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    1.47  	        decompress_func
    1.48  		case "$action" in
    1.49 @@ -247,8 +257,8 @@
    1.50  	fi
    1.51        done
    1.52      done <<EOT
    1.53 -addtar	extracttar   $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS
    1.54 -addcpio	extractcpio  $CPIO_EXTS $CPIOGZ_EXTS
    1.55 +addtar	extracttar   $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $XZ_EXTS $COMPRESS_EXTS $LZMA_EXTS
    1.56 +addcpio	extractcpio  $CPIO_EXTS $CPIOGZ_EXTS $CPIOXZ_EXTS
    1.57  EOT
    1.58  }
    1.59  
    1.60 @@ -311,6 +321,9 @@
    1.61                  echo warning: zip not found, extract only >/dev/stderr
    1.62              fi
    1.63          done
    1.64 +        [ -x /usr/bin/xz ] && for ext in $XZ_EXTS $CPIOXZ_EXTS; do
    1.65 +            printf "%s;" $ext
    1.66 +        done
    1.67  	while read mod exts; do
    1.68  	    [ -f /lib/modules/$(uname -r)/kernel/$mod ] || continue
    1.69  	    for ext in $exts; do
    1.70 @@ -373,8 +386,8 @@
    1.71  	    fi
    1.72          done
    1.73          done <<EOT
    1.74 -do_decompress	cpio\ -tv	$CPIO_EXTS $CPIOGZ_EXTS
    1.75 -do_decompress	tar\ -tvf\ -	$TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS $IPK_EXTS
    1.76 +do_decompress	cpio\ -tv	$CPIO_EXTS $CPIOGZ_EXTS $CPIOXZ_EXTS
    1.77 +do_decompress	tar\ -tvf\ -	$TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $XZ_EXTS $COMPRESS_EXTS $LZMA_EXTS $IPK_EXTS
    1.78  rpm2cpio	cpio\ -tv	$RPM_EXTS
    1.79  tazpkg2cpio	cpio\ -tv	$TAZPKG_EXTS
    1.80  EOT
    1.81 @@ -749,7 +762,7 @@
    1.82  
    1.83      -e) # extract: from archive passed files 
    1.84          for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS \
    1.85 -        	   $IPK_EXTS; do
    1.86 +        	   $IPK_EXTS $XZ_EXTS; do
    1.87              if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    1.88                  # xarchive will put is the right extract dir
    1.89                  # so we just have to extract.
    1.90 @@ -775,7 +788,7 @@
    1.91              done
    1.92  	done <<EOT
    1.93  rpm2cpio	$RPM_EXTS
    1.94 -do_decompress	$CPIO_EXTS $CPIOGZ_EXTS
    1.95 +do_decompress	$CPIO_EXTS $CPIOGZ_EXTS $CPIOXZ_EXTS
    1.96  tazpkg2cpio	$TAZPKG_EXTS
    1.97  EOT
    1.98