spk rev 39
spk-rm handle modifiers, small changes and fixes
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed May 16 01:19:38 2012 +0200 (2012-05-16) |
parents | 80b6f3e3bb6d |
children | 0a61f00e2373 |
files | lib/libspk.sh spk-add spk-rm |
line diff
1.1 --- a/lib/libspk.sh Tue May 15 23:58:01 2012 +0200 1.2 +++ b/lib/libspk.sh Wed May 16 01:19:38 2012 +0200 1.3 @@ -148,15 +148,11 @@ 1.4 gettext "Missing:"; echo " $pkg" 1.5 deps=$(($deps+1)) 1.6 elif [ ! -f "$installed/$pkg/receipt" ]; then 1.7 - gettext "WARNING Dependency loop between \$package and \$pkg."; newline 1.8 + gettext "WARNING: Dependency loop between \$package and \$pkg."; newline 1.9 fi 1.10 done 1.11 - if [ $deps -gt 0 ]; then 1.12 - echo $deps $(gettext "missing package(s) to install.") 1.13 - fi 1.14 1.15 - echo -n "$(colorize "$deps" 34) " 1.16 - gettext "missing dep(s) to install..."; newline 1.17 + gettext "Missing dependendcies:"; echo " $(colorize "$deps" 34)" 1.18 1.19 # Return true if missing deps 1.20 [ "$deps" != "0" ]
2.1 --- a/spk-add Tue May 15 23:58:01 2012 +0200 2.2 +++ b/spk-add Wed May 16 01:19:38 2012 +0200 2.3 @@ -279,7 +279,8 @@ 2.4 2.5 cd $CACHE_DIR > /dev/null 2.6 if [ -f "$package_full.tazpkg" ]; then 2.7 - echo -n "$(colorize "$package_full" 34)"; echo ": $CACHE_DIR" 2.8 + [ "$count" == 1 ] && newline 2.9 + gettext "Using cache:"; echo " $(colorize "$package_full" 34)" 2.10 # Check package download was finished 2.11 if ! tail -c 2k $package_full.tazpkg | fgrep -q 00000000TRAILER; then 2.12 eval_gettext "Continuing \$package_name download"; newline 2.13 @@ -345,6 +346,7 @@ 2.14 # Handle packages: package package.tazpkg ... packageN packageN.tazpkg 2.15 # 2.16 2.17 +count=0 2.18 check_root 2.19 2.20 for pkg in $@ 2.21 @@ -358,6 +360,7 @@ 2.22 --*) continue ;; 2.23 *) 2.24 [ "$forced" ] || check_installed $pkg 2.25 + count=$(($count + 1)) 2.26 install_web $pkg ;; 2.27 esac 2.28 done
3.1 --- a/spk-rm Tue May 15 23:58:01 2012 +0200 3.2 +++ b/spk-rm Wed May 16 01:19:38 2012 +0200 3.3 @@ -50,7 +50,8 @@ 3.4 # Remove a single package 3.5 remove() { 3.6 altered="" 3.7 - for i in $(cd $installed ; ls); do 3.8 + for i in $(ls $installed) 3.9 + do 3.10 [ -f $installed/$i/receipt ] || continue 3.11 unset_receipt 3.12 . $installed/$i/receipt 3.13 @@ -61,35 +62,21 @@ 3.14 unset_receipt 3.15 . $installed/$pkg/receipt 3.16 3.17 - if [ -n "$altered" ]; then 3.18 - gettext "The following packages depend on"; boldify " $PACKAGE:" 3.19 + # Reverse dep. 3.20 + if [ "$altered" ]; then 3.21 + gettext "The following packages depend on"; boldify " $PACKAGE" 3.22 for i in $altered; do 3.23 - echo " $i" 3.24 - done 3.25 - fi 3.26 - refresh=$(cd $installed ; grep -sl ^$PACKAGE$ */modifiers) 3.27 - if [ -n "$refresh" ]; then 3.28 - gettext "The following packages have been modified by" 3.29 - boldify " $PACKAGE:" 3.30 - for i in $refresh; do 3.31 - echo " ${i%/modifiers}" 3.32 + echo " $i" 3.33 done 3.34 fi 3.35 3.36 - # Do we have packages depending on $pkg ? 3.37 - if [ "$altered" ]; then 3.38 - if [ "$confirm" ]; then 3.39 - gettext "Remove packages depending on:"; echo -n " $PACKAGE" 3.40 - if ! confirm; then 3.41 - gettext "Keeping packages depending on:"; echo " $PACKAGE" 3.42 - echo -e "\n" && continue 3.43 - fi 3.44 + # Reverse deps are displayed, confirm uninstall. 3.45 + if [ "$confirm" ]; then 3.46 + gettext "Confirm uninstallation of:"; echo -n " $pkg" 3.47 + if ! confirm; then 3.48 + gettext "Uninstallation cancelled" 3.49 + echo -e "\n" && continue 3.50 fi 3.51 - for i in $altered; do 3.52 - if [ -d "$installed/$i" ]; then 3.53 - spk-rm $i --root=$root 3.54 - fi 3.55 - done 3.56 fi 3.57 3.58 # Handle pre_remove 3.59 @@ -135,21 +122,42 @@ 3.60 status 3.61 sed -i "/ $PACKAGE-${VERSION}${EXTRAVERSION}$/d" $pkgsmd5 2> /dev/null 3.62 3.63 - # Mofified ? 3.64 - if [ "$refresh" ]; then 3.65 + separator && newline 3.66 + 3.67 + # Do we have packages depending on $pkg to remove ? 3.68 + if [ "$altered" ]; then 3.69 if [ "$confirm" ]; then 3.70 - gettext "Reinstall packages modified by:"; echo " $PACKAGE" 3.71 + gettext "Remove packages depending on:"; echo -n " $PACKAGE" 3.72 + if ! confirm; then 3.73 + gettext "Keeping packages depending on:"; echo " $PACKAGE" 3.74 + newline && continue 3.75 + fi 3.76 + fi 3.77 + for i in $altered; do 3.78 + if [ -d "$installed/$i" ]; then 3.79 + spk-rm $i --root=$root 3.80 + fi 3.81 + done 3.82 + fi 3.83 + 3.84 + # Handle mofified packages 3.85 + modified=$(cd $installed; grep -sl ^$pkg$ */modifiers) 3.86 + if [ "$modified" ]; then 3.87 + gettext "Following packages was modified by"; boldify " $pkg" 3.88 + for i in $modified; do 3.89 + echo " ${i%/modifiers}" 3.90 + # Remove package from the modifiers list 3.91 + sed -i "/^${pkg}$/"d $installed/$i 3.92 + done 3.93 + if [ "$confirm" ]; then 3.94 + gettext "Reinstall packages modified by:"; echo -n " $PACKAGE" 3.95 if ! confirm; then 3.96 gettext "Keeping packages modified by:"; echo " $PACKAGE" 3.97 - echo -e "\n" && continue 3.98 + newline && continue 3.99 fi 3.100 fi 3.101 - for i in $refresh; do 3.102 - if [ $(wc -l < $installed/$i) -gt 1 ]; then 3.103 - gettext "For reinstallation check:"; echo " $installed/$i" 3.104 - continue 3.105 - fi 3.106 - rm -r $installed/$i 3.107 + # Reinstall modified packages 3.108 + for i in $modified; do 3.109 spk-add ${i%/modifiers} --forced --root=$root 3.110 done 3.111 fi 3.112 @@ -187,16 +195,7 @@ 3.113 boldify $(gettext "Removing"; echo " $pkg") 3.114 separator 3.115 [ "$verbose" ] && echo "DB: $installed" 3.116 - # Handle --confirm 3.117 - if [ "$confirm" ]; then 3.118 - gettext "Confirm uninstallation of"; echo -n " $pkg:" 3.119 - if ! confirm; then 3.120 - gettext "Uninstallation cancelled" 3.121 - echo -e "\n" && continue 3.122 - fi 3.123 - fi 3.124 remove 3.125 - separator 3.126 - echo "" && log "Removed package: $pkg" 3.127 + log "Removed package: $pkg" 3.128 done 3.129 exit 0