# HG changeset patch # User Pascal Bellard # Date 1198690556 0 # Node ID 61ac431b090868c3aa96f40b298a43ab1ab9cda4 # Parent 5e76ae2196ae0b2292601813625a2ac7e6e18836 Improve 'tazpkg remove' : checks dependancies diff -r 5e76ae2196ae -r 61ac431b0908 tazpkg --- a/tazpkg Wed Dec 26 17:12:39 2007 +0000 +++ b/tazpkg Wed Dec 26 17:35:56 2007 +0000 @@ -608,9 +608,23 @@ echo -e "\n$PACKAGE is not installed.\n" exit 0 else - . $INSTALLED/$PACKAGE/receipt + ALTERED="" + THE_PACKAGE=$PACKAGE # altered by receipt + for i in $(cd $INSTALLED ; ls); do + . $INSTALLED/$i/receipt + case " $(echo $DEPENDS) " in + *\ $THE_PACKAGE\ *) ALTERED="$ALTERED $i";; + esac + done + . $INSTALLED/$THE_PACKAGE/receipt fi echo "" + if [ -n "$ALTERED" ]; then + echo "The following packages depend on $PACKAGE :" + for i in $ALTERED; do + echo " $i" + done + fi echo "Remove $PACKAGE ($VERSION) ?" echo -n "Please confirm uninstallation (y/N) : "; read anser if [ "$anser" = "y" ]; then @@ -627,6 +641,15 @@ echo -n "Removing package receipt..." rm -rf $INSTALLED/$PACKAGE status + if [ -n "$ALTERED" ]; then + echo -n "Remove packages depending on $PACKAGE" + echo -n " (y/N) ? "; read anser + if [ "$anser" = "y" ]; then + for i in $ALTERED; do + tazpkg remove $i + done + fi + fi else echo "" echo "Uninstallation of $PACKAGE cancelled."