diff --git a/scripts/libmakepkg/util/compress.sh.in b/scripts/libmakepkg/util/compress.sh.in index 3d4d88fd..9e3150f7 100644 --- a/scripts/libmakepkg/util/compress.sh.in +++ b/scripts/libmakepkg/util/compress.sh.in @@ -29,21 +29,21 @@ source "$LIBRARY/util/message.sh" # Wrapper around many stream compression formats, for use in the middle of a # pipeline. A tar archive is passed on stdin and compressed to stdout. compress_as() { - # $1: final archive filename extension for compression type detection + # $1: final archive filename extension for compression type detection - local filename="$1" + local ext=".tar${1##*.tar}" - case "$filename" in - *tar.gz) ${COMPRESSGZ[@]:-gzip -c -f -n} ;; - *tar.bz2) ${COMPRESSBZ2[@]:-bzip2 -c -f} ;; - *tar.xz) ${COMPRESSXZ[@]:-xz -c -z -} ;; - *tar.zst) ${COMPRESSZST[@]:-zstd -c -z -q -} ;; - *tar.lrz) ${COMPRESSLRZ[@]:-lrzip -q} ;; - *tar.lzo) ${COMPRESSLZO[@]:-lzop -q} ;; - *tar.Z) ${COMPRESSZ[@]:-compress -c -f} ;; - *tar.lz4) ${COMPRESSLZ4[@]:-lz4 -q} ;; - *tar.lz) ${COMPRESSLZ[@]:-lzip -c -f} ;; - *tar) cat ;; + case "$ext" in + *.tar.gz) ${COMPRESSGZ[@]:-gzip -c -f -n} ;; + *.tar.bz2) ${COMPRESSBZ2[@]:-bzip2 -c -f} ;; + *.tar.xz) ${COMPRESSXZ[@]:-xz -c -z -} ;; + *.tar.zst) ${COMPRESSZST[@]:-zstd -c -z -q -} ;; + *.tar.lrz) ${COMPRESSLRZ[@]:-lrzip -q} ;; + *.tar.lzo) ${COMPRESSLZO[@]:-lzop -q} ;; + *.tar.Z) ${COMPRESSZ[@]:-compress -c -f} ;; + *.tar.lz4) ${COMPRESSLZ4[@]:-lz4 -q} ;; + *.tar.lz) ${COMPRESSLZ[@]:-lzip -c -f} ;; + *.tar) cat ;; *) warning "$(gettext "'%s' is not a valid archive extension.")" \ "$ext"; cat ;; esac