tazpkg view 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 source
1 #!/bin/sh
2 # TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
3 # recompress - TazPkg module
4 # Recompress .tazpkg cpio archive with lzma
7 # Connect function libraries
8 . /lib/libtaz.sh
10 # Get TazPkg working environment
11 . @@MODULES@@/getenv
16 # Extract a package with cpio and gzip/lzma.
18 extract_package() {
19 action 'Extracting package...'
20 cpio -idm --quiet < "${PACKAGE_FILE##*/}" && rm -f "${PACKAGE_FILE##*/}"
21 if [ -f fs.cpio.lzma ]; then
22 unlzma < fs.cpio.lzma | cpio -idm --quiet && rm fs.cpio.lzma
23 elif [ -f fs.cpio.gz ]; then
24 zcat fs.cpio.gz | cpio -idm --quiet && rm fs.cpio.gz
25 fi
26 status
27 }
30 PACKAGE_FILE="$1"
32 title 'Recompressing package "%s"' "$(basename "$PACKAGE_FILE" .tazpkg)"
33 TMP_DIR="$(mktemp -d)"
35 action "Copying original package..."
36 cp "$PACKAGE_FILE" "$TMP_DIR"
37 status
39 cd "$TMP_DIR"
40 extract_package
42 action "Recompressing the FS..."
43 find fs | busybox cpio -o -H newc --quiet | lzma e fs.cpio.lzma -si
44 rm -rf fs
45 status
47 action "Creating new package..."
48 find | busybox cpio -o -H newc --quiet > "$PACKAGE_FILE"
49 status
51 rm -rf "$TMP_DIR"
52 separator; newline