X-Git-Url: http://gitweb/?a=blobdiff_plain;f=pkgmk.in;h=2a6a27d1cbbaba9da59283605152533c6f23cc73;hb=37c478ef8b53608ffa9cfdedac2f65a2287ac5b9;hp=c7f54321065ce46beb0b97cf9edf02361cd0e349;hpb=e6c32c41e9cdd3c596c89cf8d1696ad952516c53;p=pkgutils-cross.git diff --git a/pkgmk.in b/pkgmk.in index c7f5432..2a6a27d 100755 --- a/pkgmk.in +++ b/pkgmk.in @@ -162,7 +162,7 @@ unpack_source() { for FILE in ${source[@]}; do LOCAL_FILENAME=`get_filename $FILE` case $LOCAL_FILENAME in - *.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tar.xz|*.tar.lzma|*.zip) + *.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm) COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" ;; *) COMMAND="cp $LOCAL_FILENAME $SRC" ;; @@ -353,6 +353,7 @@ remove_work_dir() { build_package() { local BUILD_SUCCESSFUL="no" + local COMPRESSION check_file "$TARGET" make_work_dir @@ -377,8 +378,14 @@ build_package() { cd $PKG info "Build result:" - tar czvvf $TARGET * - + + case $PKGMK_COMPRESSION_MODE in + gz) COMPRESSION="-z" ;; + bz2) COMPRESSION="-j" ;; + xz) COMPRESSION="-J" ;; + esac + bsdtar -c $COMPRESSION -f $TARGET * && bsdtar -t -v -f $TARGET + if [ $? = 0 ]; then BUILD_SUCCESSFUL="yes" @@ -606,9 +613,17 @@ main() { check_directory "`dirname $PKGMK_WORK_DIR`" check_pkgfile - - TARGET="$PKGMK_PACKAGE_DIR/$name#$version-$release.pkg.tar.gz" - + + case $PKGMK_COMPRESSION_MODE in + gz|bz2|xz) + TARGET="$PKGMK_PACKAGE_DIR/$name#$version-$release.pkg.tar.$PKGMK_COMPRESSION_MODE" + ;; + *) + error "Compression mode '$PKGMK_COMPRESSION_MODE' not supported" + exit 1 + ;; + esac + if [ "$PKGMK_CLEAN" = "yes" ]; then clean exit 0 @@ -682,6 +697,8 @@ PKGMK_SOURCE_DIR="$PWD" PKGMK_PACKAGE_DIR="$PWD" PKGMK_WORK_DIR="$PWD/work" +PKGMK_COMPRESSION_MODE="gz" + PKGMK_INSTALL="no" PKGMK_RECURSIVE="no" PKGMK_DOWNLOAD="no"