spk annotate spk-archive @ rev 42
Removed pack from spk-archive
author | Christian Mesh <meshca@clarkson.edu> |
---|---|
date | Tue May 15 21:42:35 2012 -0500 (2012-05-15) |
parents | 0a61f00e2373 |
children | fb6acdd2617c |
rev | line source |
---|---|
pankso@26 | 1 #!/bin/bash |
meshca@11 | 2 # |
meshca@11 | 3 # Spk-Archive - SliTaz Package Archive Manager |
meshca@11 | 4 # |
meshca@11 | 5 # NOT COMPLETE: Still need to re-write (just what was grabbed from tazpkg) |
meshca@11 | 6 # |
meshca@11 | 7 # Authors : See the AUTHORS files |
meshca@11 | 8 |
meshca@11 | 9 source /usr/lib/slitaz/libspk.sh |
meshca@11 | 10 |
meshca@11 | 11 usage() { |
meshca@11 | 12 name=$(basename $0) |
pankso@26 | 13 cat << EOT |
meshca@11 | 14 |
meshca@11 | 15 $(boldify $(gettext "Usage:")) $name [command] package |
meshca@11 | 16 |
meshca@11 | 17 $(boldify $(gettext "Commands:")) |
meshca@11 | 18 pack |
meshca@11 | 19 repack [--config] |
meshca@11 | 20 extract |
meshca@11 | 21 recompress |
meshca@11 | 22 |
meshca@11 | 23 $(boldify "$(gettext "Example:")") |
meshca@11 | 24 $name extract clex |
meshca@11 | 25 |
meshca@11 | 26 EOT |
meshca@11 | 27 exit 0 |
meshca@11 | 28 } |
meshca@11 | 29 |
meshca@11 | 30 # Extract a package with cpio and gzip/lzma to the current directory. |
meshca@11 | 31 # Parameters: package_file |
meshca@11 | 32 extract_package() { |
meshca@11 | 33 local package_file=$1 |
meshca@11 | 34 local package_name=$(package_name $package_file) |
pankso@26 | 35 |
meshca@11 | 36 eval_gettext "Extracting \$package_name... " |
meshca@11 | 37 cpio -idm --quiet < ${package_file##*/} && rm -f ${package_file##*/} |
meshca@11 | 38 status |
pankso@26 | 39 |
meshca@11 | 40 gettext "Extracting the pseudo fs... " |
pankso@32 | 41 unlzma -c fs.cpio.lzma | cpio -idm --quiet && rm fs.cpio.lzma |
meshca@11 | 42 status |
meshca@11 | 43 } |
meshca@11 | 44 |
meshca@11 | 45 # Extract .tazpkg cpio archive into a directory. |
meshca@11 | 46 # Parameters: package_file results_directory |
meshca@11 | 47 extract() { |
meshca@11 | 48 local package_file=$1 |
meshca@11 | 49 local target_dir=$2 |
pankso@26 | 50 |
meshca@11 | 51 # validate the file |
meshca@11 | 52 check_valid_tazpkg $package_file |
pankso@26 | 53 |
meshca@11 | 54 # find the package name |
meshca@11 | 55 local package_name=$(package_name $package_file) |
meshca@11 | 56 |
meshca@11 | 57 # Create destination directory |
meshca@11 | 58 local dest_dir=$(pwd)/$package_name |
meshca@11 | 59 [ -n "$target_dir" ] && dest_dir=$target_dir/$package_name |
meshca@11 | 60 mkdir -p $dest_dir |
pankso@26 | 61 |
meshca@11 | 62 newline |
meshca@11 | 63 echo $(boldify $(gettext "Extracting:")) $package_name |
meshca@11 | 64 separator |
pankso@26 | 65 |
meshca@11 | 66 gettext "Copying original package..." |
meshca@11 | 67 cp $package_file $dest_dir |
meshca@11 | 68 status |
meshca@11 | 69 pushd $dest_dir > /dev/null |
meshca@11 | 70 extract_package $package $package_file |
meshca@11 | 71 popd > /dev/null |
meshca@11 | 72 separator |
meshca@11 | 73 eval_gettext "\$package_name is extracted to: \$dest_dir"; newline |
meshca@11 | 74 newline |
meshca@11 | 75 } |
meshca@11 | 76 |
meshca@11 | 77 # Recompress .tazpkg cpio archive with lzma. |
meshca@11 | 78 # Parameters: package_file |
meshca@11 | 79 recompress() { |
pankso@26 | 80 local package_file=$1 |
meshca@11 | 81 valid_tazpkg $package_file |
pankso@26 | 82 |
meshca@11 | 83 local package_name=$(package_name $package_file) |
pankso@26 | 84 |
meshca@11 | 85 newline |
meshca@11 | 86 echo $(boldify $(gettext "Recompressing:")) $package_name |
meshca@11 | 87 separator |
pankso@26 | 88 |
meshca@11 | 89 mkdir -p $TMP_DIR |
pankso@26 | 90 |
meshca@11 | 91 gettext "Copying original package..." |
meshca@11 | 92 cp $package_file $TMP_DIR |
meshca@11 | 93 status |
pankso@26 | 94 |
meshca@11 | 95 pushd $TMP_DIR > /dev/null |
meshca@11 | 96 extract_package $package_file |
pankso@26 | 97 |
meshca@11 | 98 gettext "Recompressing the fs... " |
meshca@11 | 99 find fs | cpio -o -H newc --quiet | lzma e fs.cpio.lzma -si |
meshca@11 | 100 rm -rf fs |
meshca@11 | 101 status |
meshca@11 | 102 popd > /dev/null |
pankso@26 | 103 |
meshca@11 | 104 gettext "Creating new package... " |
meshca@11 | 105 find $TMP_DIR -print | cpio -o -H newc --quiet > \ |
meshca@11 | 106 $(basename $package_file).$$ && mv -f \ |
meshca@11 | 107 $(basename $package_file).$$ \ |
meshca@11 | 108 $(basename $package_file) |
meshca@11 | 109 status |
pankso@26 | 110 |
meshca@11 | 111 rm -rf $TMP_DIR |
meshca@11 | 112 } |
meshca@11 | 113 |
meshca@11 | 114 case $1 in |
meshca@11 | 115 extract|-e) |
meshca@11 | 116 extract_package $2 $3 ;; |
meshca@11 | 117 recompress|-r) |
meshca@11 | 118 recompress $2 ;; |
meshca@11 | 119 *) |
meshca@11 | 120 usage ;; |
meshca@11 | 121 esac |