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