tazpkg annotate modules/recompress @ rev 955

modules/search: allow search file with dash at start: tazpkg -sf "-spi"
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Dec 22 00:02:54 2017 +0200 (2017-12-22)
parents d6cbd0c5f273
children
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@846 43 find fs | 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@846 48 find | 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