tazpkg rev 30
Improve 'tazpkg remove' : checks dependancies
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Dec 26 17:35:56 2007 +0000 (2007-12-26) |
parents | 5e76ae2196ae |
children | 5f292ead3dc7 |
files | tazpkg |
line diff
1.1 --- a/tazpkg Wed Dec 26 17:12:39 2007 +0000 1.2 +++ b/tazpkg Wed Dec 26 17:35:56 2007 +0000 1.3 @@ -608,9 +608,23 @@ 1.4 echo -e "\n$PACKAGE is not installed.\n" 1.5 exit 0 1.6 else 1.7 - . $INSTALLED/$PACKAGE/receipt 1.8 + ALTERED="" 1.9 + THE_PACKAGE=$PACKAGE # altered by receipt 1.10 + for i in $(cd $INSTALLED ; ls); do 1.11 + . $INSTALLED/$i/receipt 1.12 + case " $(echo $DEPENDS) " in 1.13 + *\ $THE_PACKAGE\ *) ALTERED="$ALTERED $i";; 1.14 + esac 1.15 + done 1.16 + . $INSTALLED/$THE_PACKAGE/receipt 1.17 fi 1.18 echo "" 1.19 + if [ -n "$ALTERED" ]; then 1.20 + echo "The following packages depend on $PACKAGE :" 1.21 + for i in $ALTERED; do 1.22 + echo " $i" 1.23 + done 1.24 + fi 1.25 echo "Remove $PACKAGE ($VERSION) ?" 1.26 echo -n "Please confirm uninstallation (y/N) : "; read anser 1.27 if [ "$anser" = "y" ]; then 1.28 @@ -627,6 +641,15 @@ 1.29 echo -n "Removing package receipt..." 1.30 rm -rf $INSTALLED/$PACKAGE 1.31 status 1.32 + if [ -n "$ALTERED" ]; then 1.33 + echo -n "Remove packages depending on $PACKAGE" 1.34 + echo -n " (y/N) ? "; read anser 1.35 + if [ "$anser" = "y" ]; then 1.36 + for i in $ALTERED; do 1.37 + tazpkg remove $i 1.38 + done 1.39 + fi 1.40 + fi 1.41 else 1.42 echo "" 1.43 echo "Uninstallation of $PACKAGE cancelled."