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