spk rev 20
spk: add support for blocked pkgs: spk pkg1 ... pkgN --block
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 15 14:52:29 2012 +0200 (2012-05-15) |
parents | b9ca2ddbafa1 |
children | 320af418fedc |
files | spk |
line diff
1.1 --- a/spk Tue May 15 14:20:23 2012 +0200 1.2 +++ b/spk Tue May 15 14:52:29 2012 +0200 1.3 @@ -23,17 +23,20 @@ 1.4 $(gettext "SliTaz Packages toolset") 1.5 1.6 $(boldify $(gettext "Commands:")) 1.7 - info $(gettext "Display path, mirror and other stats") 1.8 - activity $(gettext "Display packages activities") 1.9 + info $(gettext "Display path, mirror and other stats") 1.10 + activity $(gettext "Display packages activities") 1.11 1.12 $(boldify $(gettext "Options:")) 1.13 - --block $(gettext "TODO") 1.14 + --add $(gettext "Install packages if mirrored") 1.15 + --rm $(gettext "Remove installed packages") 1.16 + --block $(gettext "Add packages to the blocked list") 1.17 + --unblock $(gettext "Remove packages from the blocked list") 1.18 --root $(gettext "Set the root file system path") 1.19 --debug $(gettext "Display some usefull debug information") 1.20 1.21 $(boldify $(gettext "Examples:")) 1.22 $name package1 package2 packageN 1.23 - $name package --block 1.24 + $name package package2 --block 1.25 1.26 EOT 1.27 exit 0 1.28 @@ -78,16 +81,41 @@ 1.29 1.30 for pkg in $@ 1.31 do 1.32 - # Handle: --options 1.33 - case " $@ " in 1.34 - *\ --rm\ *) 1.35 - spk-rm $pkg --count=$count 1.36 - count=$(($count + 1)) 1.37 - continue ;; 1.38 - esac 1.39 - count=$(($count + 1)) 1.40 # Installed ? 1.41 if [ -d "$installed/$pkg" ]; then 1.42 + # Handle: --options 1.43 + case " $@ " in 1.44 + *\ --block\ *) 1.45 + check_root 1.46 + [ -d "$installed/$pkg" ] || continue 1.47 + if grep -qs ^${pkg}$ $blocked; then 1.48 + echo -n "$(boldify "$pkg") " 1.49 + gettext "is already blocked"; newline 1.50 + else 1.51 + gettext "Blocking package:"; echo -n " $pkg" 1.52 + echo $pkg >> $blocked 1.53 + log "Blocked package: $pkg" && status 1.54 + fi 1.55 + continue ;; 1.56 + *\ --unblock\ *) 1.57 + check_root 1.58 + [ -d "$installed/$pkg" ] || continue 1.59 + if grep -qs ^${pkg}$ $blocked; then 1.60 + gettext "Unblocking package:"; echo -n " $pkg" 1.61 + sed -i /"^${pkg}$"/d $blocked 1.62 + log "Unblocked package: $pkg" && status 1.63 + else 1.64 + echo -n "$(boldify "$pkg") " 1.65 + gettext "is not blocked"; newline 1.66 + fi 1.67 + continue ;; 1.68 + *\ --rm\ *) 1.69 + [ -d "$installed/$pkg" ] || continue 1.70 + spk-rm $pkg --count=$count 1.71 + count=$(($count + 1)) 1.72 + continue ;; 1.73 + esac 1.74 + count=$(($count + 1)) 1.75 [ "$count" == 1 ] && newline 1.76 unset_receipt 1.77 . $installed/$pkg/receipt 1.78 @@ -101,26 +129,27 @@ 1.79 # Mirrored ? 1.80 mirrored=$(grep "^$pkg |" $pkgsdesc) 1.81 if [ "$mirrored" ]; then 1.82 - # Handle: --add 1.83 - if [ "$add" ]; then 1.84 - echo "TODO: test 'spk-add $pkg'" 1.85 - else 1.86 - [ "$count" == 1 ] && newline 1.87 - boldify "$(gettext "Package") $pkg" 1.88 - separator 1.89 - gettext "Status : not installed"; echo "" 1.90 - echo "$mirrored" | awk 'BEGIN { FS = "|" } ; { print \ 1.91 - "Version :" $2 "\n" \ 1.92 - "Short desc :" $3 "\n" \ 1.93 - "Category :" $4 }' 1.94 - separator && newline 1.95 - fi 1.96 + # Handle: --options 1.97 + case " $@ " in 1.98 + *\ --add\ *) 1.99 + echo "TODO: test 'spk-add $pkg'" 1.100 + continue ;; 1.101 + esac 1.102 + [ "$count" == 1 ] && newline 1.103 + boldify "$(gettext "Package") $pkg" 1.104 + separator 1.105 + gettext "Status : not installed"; echo "" 1.106 + echo "$mirrored" | awk 'BEGIN { FS = "|" } ; { print \ 1.107 + "Version :" $2 "\n" \ 1.108 + "Short desc :" $3 "\n" \ 1.109 + "Category :" $4 }' 1.110 + separator && newline 1.111 continue 1.112 fi 1.113 # Skip options such as --confirm or unknow package 1.114 case "$pkg" in 1.115 --*) continue ;; 1.116 - *) gettext "Unknow package"; echo ": $pkg" 1.117 + *) gettext "WARNING: Unknow package"; echo ": $pkg" 1.118 esac 1.119 done 1.120 exit 0