--- bacman.orig	2010-08-21 01:15:43.480000752 +1000
+++ bacman	2010-08-21 01:22:20.440001311 +1000
@@ -87,7 +87,7 @@
 
 pkg_arch=${CARCH:-'unknown'}
 pkg_dest="${PKGDEST:-$PWD}"
-pkg_ext=${PKGEXT:-'.pkg.tar.gz'}
+pkg_ext=${PKGEXT}
 pkg_pkger=${PACKAGER:-'Unknown Packager'}
 
 pkg_name="$1"
@@ -266,7 +266,15 @@
 echo "Generating the package..."
 
 ret=0
-bsdtar -czf "$pkg_dest/$pkg_namver-$pkg_arch$pkg_ext" $(ls -A) || ret=$?
+if [[ $pkg_ext == ".pkg.tar.xz" ]]; then
+    tar -cJf "$pkg_dest/$pkg_namver-$pkg_arch.pkg.tar.xz" $(ls -A) || ret=$?
+elif [[ $pkg_ext == ".pkg.tar.bz2" ]]; then
+    bsdtar -cyf "$pkg_dest/$pkg_namver-$pkg_arch.pkg.tar.bz2" $(ls -A) || ret=$?
+else
+    bsdtar -czf "$pkg_dest/$pkg_namver-$pkg_arch.pkg.tar.gz" $(ls -A) || ret=$?
+fi
+
+
 if [ $ret -ne 0 ]; then
     echo "ERROR: unable to write package to $pkg_dest"
     echo "       Maybe the disk is full or you do not have write access"
