cpt

[ARCHIVED] Carbs Packaging Tools
git clone git://git.ckyln.com/~cem/cpt.git
Log | Files | Refs | README | LICENSE

commit e9d53f4aa3c3c7c8f239ccd4b733375f0e3ee384
parent 6a31032c551ecc7b3c26efadf12789b90510a261
Author: Cem Keylan <cem@ckyln.com>
Date:   Sat,  9 May 2020 15:13:56 +0300

kiss: simplify tarball extraction

Diffstat:
Mkiss | 20++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/kiss b/kiss @@ -316,21 +316,13 @@ pkg_extract() { # which allows for manual extraction. *://*.tar|*://*.tar.??|*://*.tar.???|*://*.tar.????|*://*.tgz) - # Remove the possible tar extensions so we can decompress it - # into that location. - src_tar="${src##*/}" src_tar="${src_tar%.tar*}" src_tar="${src_tar%.tgz}.tar" - - # Skip decompression if the source is already a decompressed tarball - [ "$src_tar" = "${src##*/}" ] || { - decompress "$src_dir/$1/${src##*/}" > "$src_dir/$1/$src_tar" || - die "$1" "Couldn't decompres ${src##*/}" - } + decompress "$src_dir/$1/${src##*/}" > .ktar - "$tar" xf "$src_dir/$1/$src_tar" || die "$1" "Couldn't extract $src_tar" + "$tar" xf .ktar || die "$1" "Couldn't extract ${src##*/}" # We now list the contents of the tarball so we can do our # version of 'strip-components'. - "$tar" tf "$src_dir/$1/$src_tar" | + "$tar" tf .ktar | while read -r file; do printf '%s\n' "${file%%/*}"; done | # Do not repeat files. @@ -343,7 +335,7 @@ pkg_extract() { # Skip if we are not dealing with a directory here. # This way we don't remove files on the upper directory # if a tar archive doesn't need directory stripping. - [ -d "$dir" ] || continue + [ -d "${dir#.}" ] || continue # Change into the directory in a subshell so we don't # need to cd back to the upper directory. @@ -369,8 +361,8 @@ pkg_extract() { ! [ -e "${dir}.kissbak" ] || mv "${dir}.kissbak" "$dir" done - # Remove the decompressed tarball if it isn't the original source - [ "$src_tar" = "${src##*/}" ] || rm -f "$src_dir/$1/$src_tar" + # Clean up the temporary tarball. + rm -f .ktar ;; *://*.zip)