diff options
-rwxr-xr-x | kiss | 20 |
1 files changed, 6 insertions, 14 deletions
@@ -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) |