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")" |