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