tazpkg rev 163

Check modifiers during remove
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Oct 15 17:27:44 2008 +0000 (2008-10-15)
parents bfbd3b3a28b4
children 47471c0125a2
files tazpkg
line diff
     1.1 --- a/tazpkg	Thu Oct 02 15:12:22 2008 +0000
     1.2 +++ b/tazpkg	Wed Oct 15 17:27:44 2008 +0000
     1.3 @@ -1054,6 +1054,7 @@
     1.4  			ALTERED=""
     1.5  			THE_PACKAGE=$PACKAGE	# altered by receipt
     1.6  			for i in $(cd $INSTALLED ; ls); do
     1.7 +				[ -f $i/receipt ] || continue
     1.8  				DEPENDS=""
     1.9  				. $INSTALLED/$i/receipt
    1.10  				case " $(echo $DEPENDS) " in
    1.11 @@ -1070,6 +1071,13 @@
    1.12  				echo "  $i"
    1.13  			done
    1.14  		fi
    1.15 +		REFRESH=$(cd $INSTALLED ; grep -sl ^$PACKAGE$ */modifiers)
    1.16 +		if [ -n "$REFRESH" ]; then
    1.17 +			echo "The following packages have been modified $PACKAGE :"
    1.18 +			for i in $REFRESH; do
    1.19 +				echo "  $i"
    1.20 +			done
    1.21 +		fi
    1.22  		echo "Remove $PACKAGE ($VERSION$EXTRAVERSION) ?"
    1.23  		echo -n "Please confirm uninstallation (y/N) : "; read anser
    1.24  		if [ "$anser" = "y" ]; then
    1.25 @@ -1105,6 +1113,20 @@
    1.26  					done
    1.27  				fi
    1.28  			fi
    1.29 +			if [ -n "$REFRESH" ]; then
    1.30 +				echo -n "Reinstall packages modified by $PACKAGE"
    1.31 +				echo -n " (y/N) ? "; read anser
    1.32 +				if [ "$anser" = "y" ]; then
    1.33 +					for i in $REFRESH; do
    1.34 +						if [ $(wc -l $INSTALLED/$i/modifiers) -gt 1 ]; then
    1.35 +							echo "Check $INSTALLED/$i/modifiers for reinstallation"
    1.36 +							continue
    1.37 +						fi
    1.38 +						rm -r $INSTALLED/$i/modifiers
    1.39 +						tazpkg get-install $i --forced
    1.40 +					done
    1.41 +				fi
    1.42 +			fi
    1.43  		else
    1.44  			echo ""
    1.45  			echo "Uninstallation of $PACKAGE cancelled."