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
files doc/tazpkg.html tazpkg
line diff
     1.1 --- a/doc/tazpkg.html	Tue Dec 11 16:25:08 2007 +0100
     1.2 +++ b/doc/tazpkg.html	Tue Dec 11 16:26:44 2007 +0100
     1.3 @@ -190,6 +190,14 @@
     1.4  <pre>
     1.5   # tazpkg pack package-version
     1.6  </pre>
     1.7 +<h3><font color="#6c0023">repack</font></h3>
     1.8 +<p>
     1.9 +La commande 'repack' permet de recréer un paquet depuis les fichiers présents
    1.10 +sur le système où il a été précédemment installé. Pour réempaqueter un paquet :
    1.11 +</p>
    1.12 +<pre>
    1.13 + # tazpkg repack package
    1.14 +</pre>
    1.15  <h3><font color="#6c0023">recharge</font></h3>
    1.16  <p>
    1.17  Recharge la liste des paquets disponibles sur le miroir (packages.list). Cette
     2.1 --- a/tazpkg	Tue Dec 11 16:25:08 2007 +0100
     2.2 +++ b/tazpkg	Tue Dec 11 16:26:44 2007 +0100
     2.3 @@ -83,6 +83,7 @@
     2.4    extract       Extract a (*.tazpkg) package into a directory.
     2.5    pack          Pack an unpacked or prepared package tree.
     2.6    recharge      Recharge your packages.list from the mirror.
     2.7 +  repack        Creat a package archive from an installed package.
     2.8    upgrade       Upgrade all installed and listed packages on the mirror.
     2.9    block|unblock Block an installed package version or unblock it for upgrade.
    2.10    get           Download a package into the current directory.
    2.11 @@ -619,6 +620,46 @@
    2.12  		echo "$PACKAGE is extracted to : $DESTDIR"
    2.13  		echo ""
    2.14  		;;
    2.15 +	repack)
    2.16 +		# Creat SliTaz package archive from an installed package.
    2.17 +		#
    2.18 +		check_for_package_on_cmdline
    2.19 +		check_for_receipt
    2.20 +		eval $(grep ^VERSION= $INSTALLED/$PACKAGE/receipt)
    2.21 +		echo ""
    2.22 +		echo -e "\033[1mRepacking :\033[0m $PACKAGE-$VERSION.tazpkg"
    2.23 +		echo "================================================================================"
    2.24 +		MISSING=""
    2.25 +		for i in $(sed 's,^fs,,g' < $INSTALLED/$PACKAGE/files.list); do
    2.26 +			[ -e "$i" ] && continue
    2.27 +			[ -L "$i" ] || MISSING="$MISSING $i"
    2.28 +		done
    2.29 +		if [ -n "$MISSING" ]; then
    2.30 +			echo "Can't repack, the following files are lost:"
    2.31 +			for i in $MISSING; do
    2.32 +				echo "  $i"
    2.33 +			done
    2.34 +			exit 1
    2.35 +		fi
    2.36 +		HERE=`pwd`
    2.37 +		mkdir -p $TMP_DIR
    2.38 +		cd $TMP_DIR
    2.39 +		cp $INSTALLED/$PACKAGE/files.list .
    2.40 +		cp $INSTALLED/$PACKAGE/receipt .
    2.41 +		ln -s / fs
    2.42 +		sed 's,^,fs,g' < files.list | cpio -o -H newc 2> /dev/null | \
    2.43 +			gzip -9 > fs.cpio.gz
    2.44 +		cpio -o -H newc > $HERE/$PACKAGE-$VERSION.tazpkg 2> /dev/null <<EOT
    2.45 +receipt
    2.46 +files.list
    2.47 +fs.cpio.gz
    2.48 +EOT
    2.49 +		cd $HERE
    2.50 +		\rm -R $TMP_DIR
    2.51 +		echo "Package $PACKAGE repacked successfully."
    2.52 +		echo "Size : `du -sh $PACKAGE-$VERSION.tazpkg`"
    2.53 +		echo ""
    2.54 +		;;
    2.55  	pack)
    2.56  		# Creat SliTaz package archive using cpio and gzip.
    2.57  		#
    2.58 @@ -647,7 +688,7 @@
    2.59  			gzip -d fs.cpio.gz && cpio -id < fs.cpio
    2.60  			rm fs.cpio && cd ..
    2.61  			echo "================================================================================"
    2.62 -			echo "Package $PACKAGE compressed succefully."
    2.63 +			echo "Package $PACKAGE compressed successfully."
    2.64  			echo "Size : `du -sh $PACKAGE.tazpkg`"
    2.65  			echo ""
    2.66  		fi