tazpkg diff modules/recompress @ rev 844

Finish modularization. Beta release: still have few FIXMEs and TODOs.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Oct 05 03:53:47 2015 +0300 (2015-10-05)
parents
children 8a73a58ed3cb
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/modules/recompress	Mon Oct 05 03:53:47 2015 +0300
     1.3 @@ -0,0 +1,52 @@
     1.4 +#!/bin/sh
     1.5 +# TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
     1.6 +# recompress - TazPkg module
     1.7 +# Recompress .tazpkg cpio archive with lzma
     1.8 +
     1.9 +
    1.10 +# Connect function libraries
    1.11 +. /lib/libtaz.sh
    1.12 +
    1.13 +# Get TazPkg working environment
    1.14 +. @@MODULES@@/getenv
    1.15 +
    1.16 +
    1.17 +
    1.18 +
    1.19 +# Extract a package with cpio and gzip/lzma.
    1.20 +
    1.21 +extract_package() {
    1.22 +	action 'Extracting package...'
    1.23 +	cpio -idm --quiet < "${PACKAGE_FILE##*/}" && rm -f "${PACKAGE_FILE##*/}"
    1.24 +	if [ -f fs.cpio.lzma ]; then
    1.25 +		unlzma < fs.cpio.lzma | cpio -idm --quiet && rm fs.cpio.lzma
    1.26 +	elif [ -f fs.cpio.gz ]; then
    1.27 +		zcat fs.cpio.gz | cpio -idm --quiet && rm fs.cpio.gz
    1.28 +	fi
    1.29 +	status
    1.30 +}
    1.31 +
    1.32 +
    1.33 +PACKAGE_FILE="$1"
    1.34 +
    1.35 +title 'Recompressing package "%s"' "$(basename "$PACKAGE_FILE" .tazpkg)"
    1.36 +TMP_DIR="$(mktemp -d)"
    1.37 +
    1.38 +action "Copying original package..."
    1.39 +cp "$PACKAGE_FILE" "$TMP_DIR"
    1.40 +status
    1.41 +
    1.42 +cd "$TMP_DIR"
    1.43 +extract_package
    1.44 +
    1.45 +action "Recompressing the FS..."
    1.46 +find fs | busybox cpio -o -H newc --quiet | lzma e fs.cpio.lzma -si
    1.47 +rm -rf fs
    1.48 +status
    1.49 +
    1.50 +action "Creating new package..."
    1.51 +find | busybox cpio -o -H newc --quiet > "$PACKAGE_FILE"
    1.52 +status
    1.53 +
    1.54 +rm -rf "$TMP_DIR"
    1.55 +separator; newline