summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2008-09-04 20:44:19 -0500
committerDan McGee <dan@archlinux.org>2008-10-12 21:36:40 -0500
commit91a013a8791b73daf4d17b2d52c8dfaf12887cc6 (patch)
tree1df75b798ed33a51201a390f67380837589cf5c1
parentf1f8f0e1c291a2201f122e0ec1d7e6179bf11cc8 (diff)
downloadpacman-91a013a8791b73daf4d17b2d52c8dfaf12887cc6.tar.xz
makepkg: allow compression type to be autodetected
Inspired by commit 7e8f1469c4168875b54956d63884b8583ce99e38, use our given PKGEXT or SRCEXT to determine what method of compression to use on the package we create. If the extension is invalid, this should fall back to creating a non-compressed tar file. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--scripts/makepkg.sh.in20
1 files changed, 18 insertions, 2 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index c15d91f4..ff05e481 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -871,13 +871,21 @@ create_package() {
# tar it up
msg2 "$(gettext "Compressing package...")"
+ local TAR_OPT
+ case "$PKGEXT" in
+ *tar.gz) TAR_OPT="z" ;;
+ *tar.bz2) TAR_OPT="j" ;;
+ *) warning "$(gettext "'%s' is not a valid archive extension.")" \
+ "$PKGEXT" ;;
+ esac
+
local pkg_file="$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
# when fileglobbing, we want * in an empty directory to expand to
# the null string rather than itself
shopt -s nullglob
- if ! bsdtar -czf "$pkg_file" $comp_files *; then
+ if ! bsdtar -c${TAR_OPT}f "$pkg_file" $comp_files *; then
error "$(gettext "Failed to create package file.")"
exit 1 # TODO: error code
fi
@@ -992,12 +1000,20 @@ create_srcpackage() {
fi
done
+ local TAR_OPT
+ case "$SRCEXT" in
+ *tar.gz) TAR_OPT="z" ;;
+ *tar.bz2) TAR_OPT="j" ;;
+ *) warning "$(gettext "'%s' is not a valid archive extension.")" \
+ "$SRCEXT" ;;
+ esac
+
local pkg_file="$PKGDEST/${pkgname}-${pkgver}-${pkgrel}${SRCEXT}"
# tar it up
msg2 "$(gettext "Compressing source package...")"
cd "${srclinks}"
- if ! bsdtar -czLf "$pkg_file" ${pkgname}; then
+ if ! bsdtar -c${TAR_OPT}Lf "$pkg_file" ${pkgname}; then
error "$(gettext "Failed to create source package file.")"
exit 1 # TODO: error code
fi