# HG changeset patch # User Christophe Lincoln # Date 1337123978 -7200 # Node ID 8ed83db5a0be90fe0c21386ab91fb5ed5d8d8958 # Parent 80b6f3e3bb6d5a052b1256e75f4fd58591b33720 spk-rm handle modifiers, small changes and fixes diff -r 80b6f3e3bb6d -r 8ed83db5a0be lib/libspk.sh --- a/lib/libspk.sh Tue May 15 23:58:01 2012 +0200 +++ b/lib/libspk.sh Wed May 16 01:19:38 2012 +0200 @@ -148,15 +148,11 @@ gettext "Missing:"; echo " $pkg" deps=$(($deps+1)) elif [ ! -f "$installed/$pkg/receipt" ]; then - gettext "WARNING Dependency loop between \$package and \$pkg."; newline + gettext "WARNING: Dependency loop between \$package and \$pkg."; newline fi done - if [ $deps -gt 0 ]; then - echo $deps $(gettext "missing package(s) to install.") - fi - echo -n "$(colorize "$deps" 34) " - gettext "missing dep(s) to install..."; newline + gettext "Missing dependendcies:"; echo " $(colorize "$deps" 34)" # Return true if missing deps [ "$deps" != "0" ] diff -r 80b6f3e3bb6d -r 8ed83db5a0be spk-add --- a/spk-add Tue May 15 23:58:01 2012 +0200 +++ b/spk-add Wed May 16 01:19:38 2012 +0200 @@ -279,7 +279,8 @@ cd $CACHE_DIR > /dev/null if [ -f "$package_full.tazpkg" ]; then - echo -n "$(colorize "$package_full" 34)"; echo ": $CACHE_DIR" + [ "$count" == 1 ] && newline + gettext "Using cache:"; echo " $(colorize "$package_full" 34)" # Check package download was finished if ! tail -c 2k $package_full.tazpkg | fgrep -q 00000000TRAILER; then eval_gettext "Continuing \$package_name download"; newline @@ -345,6 +346,7 @@ # Handle packages: package package.tazpkg ... packageN packageN.tazpkg # +count=0 check_root for pkg in $@ @@ -358,6 +360,7 @@ --*) continue ;; *) [ "$forced" ] || check_installed $pkg + count=$(($count + 1)) install_web $pkg ;; esac done diff -r 80b6f3e3bb6d -r 8ed83db5a0be spk-rm --- a/spk-rm Tue May 15 23:58:01 2012 +0200 +++ b/spk-rm Wed May 16 01:19:38 2012 +0200 @@ -50,7 +50,8 @@ # Remove a single package remove() { altered="" - for i in $(cd $installed ; ls); do + for i in $(ls $installed) + do [ -f $installed/$i/receipt ] || continue unset_receipt . $installed/$i/receipt @@ -61,35 +62,21 @@ unset_receipt . $installed/$pkg/receipt - if [ -n "$altered" ]; then - gettext "The following packages depend on"; boldify " $PACKAGE:" + # Reverse dep. + if [ "$altered" ]; then + gettext "The following packages depend on"; boldify " $PACKAGE" for i in $altered; do - echo " $i" - done - fi - refresh=$(cd $installed ; grep -sl ^$PACKAGE$ */modifiers) - if [ -n "$refresh" ]; then - gettext "The following packages have been modified by" - boldify " $PACKAGE:" - for i in $refresh; do - echo " ${i%/modifiers}" + echo " $i" done fi - # Do we have packages depending on $pkg ? - if [ "$altered" ]; then - if [ "$confirm" ]; then - gettext "Remove packages depending on:"; echo -n " $PACKAGE" - if ! confirm; then - gettext "Keeping packages depending on:"; echo " $PACKAGE" - echo -e "\n" && continue - fi + # Reverse deps are displayed, confirm uninstall. + if [ "$confirm" ]; then + gettext "Confirm uninstallation of:"; echo -n " $pkg" + if ! confirm; then + gettext "Uninstallation cancelled" + echo -e "\n" && continue fi - for i in $altered; do - if [ -d "$installed/$i" ]; then - spk-rm $i --root=$root - fi - done fi # Handle pre_remove @@ -135,21 +122,42 @@ status sed -i "/ $PACKAGE-${VERSION}${EXTRAVERSION}$/d" $pkgsmd5 2> /dev/null - # Mofified ? - if [ "$refresh" ]; then + separator && newline + + # Do we have packages depending on $pkg to remove ? + if [ "$altered" ]; then if [ "$confirm" ]; then - gettext "Reinstall packages modified by:"; echo " $PACKAGE" + gettext "Remove packages depending on:"; echo -n " $PACKAGE" + if ! confirm; then + gettext "Keeping packages depending on:"; echo " $PACKAGE" + newline && continue + fi + fi + for i in $altered; do + if [ -d "$installed/$i" ]; then + spk-rm $i --root=$root + fi + done + fi + + # Handle mofified packages + modified=$(cd $installed; grep -sl ^$pkg$ */modifiers) + if [ "$modified" ]; then + gettext "Following packages was modified by"; boldify " $pkg" + for i in $modified; do + echo " ${i%/modifiers}" + # Remove package from the modifiers list + sed -i "/^${pkg}$/"d $installed/$i + done + if [ "$confirm" ]; then + gettext "Reinstall packages modified by:"; echo -n " $PACKAGE" if ! confirm; then gettext "Keeping packages modified by:"; echo " $PACKAGE" - echo -e "\n" && continue + newline && continue fi fi - for i in $refresh; do - if [ $(wc -l < $installed/$i) -gt 1 ]; then - gettext "For reinstallation check:"; echo " $installed/$i" - continue - fi - rm -r $installed/$i + # Reinstall modified packages + for i in $modified; do spk-add ${i%/modifiers} --forced --root=$root done fi @@ -187,16 +195,7 @@ boldify $(gettext "Removing"; echo " $pkg") separator [ "$verbose" ] && echo "DB: $installed" - # Handle --confirm - if [ "$confirm" ]; then - gettext "Confirm uninstallation of"; echo -n " $pkg:" - if ! confirm; then - gettext "Uninstallation cancelled" - echo -e "\n" && continue - fi - fi remove - separator - echo "" && log "Removed package: $pkg" + log "Removed package: $pkg" done exit 0