tazpkg annotate modules/extract @ 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
rev   line source
al@844 1 #!/bin/sh
al@844 2 # TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
al@844 3 # extract - TazPkg module
al@844 4 # Extract .tazpkg cpio archive into a directory
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 < "$1" && rm -f "$1"
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
al@844 31
al@844 32 PACKAGE_FILE="$1"
al@844 33 TARGET_DIR="$2"
al@844 34 PACKAGE="$(basename "$PACKAGE_FILE" .tazpkg)"
al@844 35
al@844 36 title 'Extracting package "%s"' "$PACKAGE"
al@844 37
al@844 38 # If no directory destination is found on the cmdline
al@844 39 # we create one in the current dir using the package name.
al@844 40 if [ -n "$TARGET_DIR" ]; then
al@844 41 DESTDIR="$TARGET_DIR/$PACKAGE"
al@844 42 else
al@844 43 DESTDIR="$PACKAGE"
al@844 44 fi
al@844 45 mkdir -p "$DESTDIR"
al@844 46
al@844 47 action 'Copying original package...'
al@844 48 cp "$PACKAGE_FILE" "$DESTDIR"
al@844 49 status
al@844 50
al@844 51 cd "$DESTDIR"
al@844 52 extract_package "${PACKAGE_FILE##*/}"
al@844 53
al@844 54 [ -e "receipt" ] && footer "$(_ 'Package "%s" is extracted to "%s"' "$PACKAGE" "$DESTDIR")"