aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkiss20
1 files changed, 6 insertions, 14 deletions
diff --git a/kiss b/kiss
index 821291d..d2b9bbc 100755
--- 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)