tazpkg diff tazpkg @ rev 18

repack support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Dec 11 16:26:44 2007 +0100 (2007-12-11)
parents 8fc79709638c
children fa0a764a285f
line diff
     1.1 --- a/tazpkg	Tue Dec 11 16:25:08 2007 +0100
     1.2 +++ b/tazpkg	Tue Dec 11 16:26:44 2007 +0100
     1.3 @@ -83,6 +83,7 @@
     1.4    extract       Extract a (*.tazpkg) package into a directory.
     1.5    pack          Pack an unpacked or prepared package tree.
     1.6    recharge      Recharge your packages.list from the mirror.
     1.7 +  repack        Creat a package archive from an installed package.
     1.8    upgrade       Upgrade all installed and listed packages on the mirror.
     1.9    block|unblock Block an installed package version or unblock it for upgrade.
    1.10    get           Download a package into the current directory.
    1.11 @@ -619,6 +620,46 @@
    1.12  		echo "$PACKAGE is extracted to : $DESTDIR"
    1.13  		echo ""
    1.14  		;;
    1.15 +	repack)
    1.16 +		# Creat SliTaz package archive from an installed package.
    1.17 +		#
    1.18 +		check_for_package_on_cmdline
    1.19 +		check_for_receipt
    1.20 +		eval $(grep ^VERSION= $INSTALLED/$PACKAGE/receipt)
    1.21 +		echo ""
    1.22 +		echo -e "\033[1mRepacking :\033[0m $PACKAGE-$VERSION.tazpkg"
    1.23 +		echo "================================================================================"
    1.24 +		MISSING=""
    1.25 +		for i in $(sed 's,^fs,,g' < $INSTALLED/$PACKAGE/files.list); do
    1.26 +			[ -e "$i" ] && continue
    1.27 +			[ -L "$i" ] || MISSING="$MISSING $i"
    1.28 +		done
    1.29 +		if [ -n "$MISSING" ]; then
    1.30 +			echo "Can't repack, the following files are lost:"
    1.31 +			for i in $MISSING; do
    1.32 +				echo "  $i"
    1.33 +			done
    1.34 +			exit 1
    1.35 +		fi
    1.36 +		HERE=`pwd`
    1.37 +		mkdir -p $TMP_DIR
    1.38 +		cd $TMP_DIR
    1.39 +		cp $INSTALLED/$PACKAGE/files.list .
    1.40 +		cp $INSTALLED/$PACKAGE/receipt .
    1.41 +		ln -s / fs
    1.42 +		sed 's,^,fs,g' < files.list | cpio -o -H newc 2> /dev/null | \
    1.43 +			gzip -9 > fs.cpio.gz
    1.44 +		cpio -o -H newc > $HERE/$PACKAGE-$VERSION.tazpkg 2> /dev/null <<EOT
    1.45 +receipt
    1.46 +files.list
    1.47 +fs.cpio.gz
    1.48 +EOT
    1.49 +		cd $HERE
    1.50 +		\rm -R $TMP_DIR
    1.51 +		echo "Package $PACKAGE repacked successfully."
    1.52 +		echo "Size : `du -sh $PACKAGE-$VERSION.tazpkg`"
    1.53 +		echo ""
    1.54 +		;;
    1.55  	pack)
    1.56  		# Creat SliTaz package archive using cpio and gzip.
    1.57  		#
    1.58 @@ -647,7 +688,7 @@
    1.59  			gzip -d fs.cpio.gz && cpio -id < fs.cpio
    1.60  			rm fs.cpio && cd ..
    1.61  			echo "================================================================================"
    1.62 -			echo "Package $PACKAGE compressed succefully."
    1.63 +			echo "Package $PACKAGE compressed successfully."
    1.64  			echo "Size : `du -sh $PACKAGE.tazpkg`"
    1.65  			echo ""
    1.66  		fi