spk annotate spk @ rev 36
spk: small improvments
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 15 21:57:13 2012 +0200 (2012-05-15) |
parents | ea3c01346d05 |
children | a569934d1031 |
rev | line source |
---|---|
pankso@19 | 1 #!/bin/sh |
pankso@19 | 2 # |
pankso@19 | 3 # Spk - The SliTaz Packages toolset. Read the README before adding or |
pankso@19 | 4 # modifing any code in spk! |
pankso@19 | 5 # |
pankso@19 | 6 # Copyright (C) SliTaz GNU/Linux - BSD License |
pankso@19 | 7 # Author: See AUTHORS files |
pankso@19 | 8 # |
pankso@31 | 9 . /usr/lib/slitaz/libspk.sh |
pankso@19 | 10 |
pankso@19 | 11 # |
pankso@19 | 12 # Functions |
pankso@19 | 13 # |
pankso@19 | 14 |
pankso@19 | 15 # Help and usage |
pankso@19 | 16 usage() { |
pankso@19 | 17 name=$(basename $0) |
pankso@19 | 18 cat << EOT |
pankso@19 | 19 |
pankso@19 | 20 $(boldify $(gettext "Usage:")) $name [packages|--options] |
pankso@19 | 21 |
pankso@19 | 22 $(gettext "SliTaz Packages toolset") |
pankso@19 | 23 |
pankso@19 | 24 $(boldify $(gettext "Commands:")) |
pankso@20 | 25 info $(gettext "Display path, mirror and other stats") |
pankso@20 | 26 activity $(gettext "Display packages activities") |
pankso@19 | 27 |
pankso@19 | 28 $(boldify $(gettext "Options:")) |
pankso@20 | 29 --add $(gettext "Install packages if mirrored") |
pankso@20 | 30 --rm $(gettext "Remove installed packages") |
pankso@20 | 31 --block $(gettext "Add packages to the blocked list") |
pankso@20 | 32 --unblock $(gettext "Remove packages from the blocked list") |
pankso@36 | 33 --root= $(gettext "Set the root file system path") |
pankso@19 | 34 --debug $(gettext "Display some usefull debug information") |
pankso@19 | 35 |
pankso@19 | 36 $(boldify $(gettext "Examples:")) |
pankso@19 | 37 $name package1 package2 packageN |
pankso@20 | 38 $name package package2 --block |
pankso@19 | 39 |
pankso@19 | 40 EOT |
pankso@19 | 41 exit 0 |
pankso@19 | 42 } |
pankso@19 | 43 |
pankso@19 | 44 # |
pankso@19 | 45 # Commands and exit |
pankso@19 | 46 # |
pankso@19 | 47 |
pankso@19 | 48 case "$1" in |
pankso@19 | 49 ""|*usage|*help) usage ;; |
pankso@19 | 50 info) |
pankso@36 | 51 cache="$(du -sh $CACHE_DIR | awk '{print $1 " " $2}')" |
pankso@19 | 52 newline |
pankso@19 | 53 boldify "Spk Info" |
pankso@19 | 54 separator |
pankso@19 | 55 gettext "Database :"; echo " $installed" |
pankso@36 | 56 gettext "Cache info :"; echo " $cache" |
pankso@19 | 57 gettext "Mirror URL :"; echo " $(cat $mirrorurl)" |
pankso@19 | 58 count_installed |
pankso@19 | 59 count_mirrored |
pankso@19 | 60 separator |
pankso@19 | 61 newline && exit 0 ;; |
pankso@19 | 62 activity) |
pankso@36 | 63 # --head=NB |
pankso@36 | 64 : ${head=18} |
pankso@19 | 65 newline |
pankso@19 | 66 boldify "Spk Activity" |
pankso@19 | 67 separator |
pankso@36 | 68 cat $activity | head -n $head |
pankso@19 | 69 separator && newline |
pankso@19 | 70 exit 0 ;; |
pankso@19 | 71 esac |
pankso@19 | 72 |
pankso@19 | 73 # |
pankso@19 | 74 # Handle packages: spk package1 ... packageN |
pankso@19 | 75 # |
pankso@19 | 76 |
pankso@19 | 77 [ "$debug" ] && echo "DEBUG: cmdline: $0 $@" |
pankso@19 | 78 count=0 |
pankso@19 | 79 |
pankso@19 | 80 for pkg in $@ |
pankso@19 | 81 do |
pankso@19 | 82 # Installed ? |
pankso@19 | 83 if [ -d "$installed/$pkg" ]; then |
pankso@20 | 84 # Handle: --options |
pankso@20 | 85 case " $@ " in |
pankso@20 | 86 *\ --block\ *) |
pankso@20 | 87 check_root |
pankso@20 | 88 [ -d "$installed/$pkg" ] || continue |
pankso@20 | 89 if grep -qs ^${pkg}$ $blocked; then |
pankso@20 | 90 echo -n "$(boldify "$pkg") " |
pankso@20 | 91 gettext "is already blocked"; newline |
pankso@20 | 92 else |
pankso@20 | 93 gettext "Blocking package:"; echo -n " $pkg" |
pankso@20 | 94 echo $pkg >> $blocked |
pankso@20 | 95 log "Blocked package: $pkg" && status |
pankso@20 | 96 fi |
pankso@20 | 97 continue ;; |
pankso@20 | 98 *\ --unblock\ *) |
pankso@20 | 99 check_root |
pankso@20 | 100 [ -d "$installed/$pkg" ] || continue |
pankso@20 | 101 if grep -qs ^${pkg}$ $blocked; then |
pankso@20 | 102 gettext "Unblocking package:"; echo -n " $pkg" |
pankso@20 | 103 sed -i /"^${pkg}$"/d $blocked |
pankso@20 | 104 log "Unblocked package: $pkg" && status |
pankso@20 | 105 else |
pankso@20 | 106 echo -n "$(boldify "$pkg") " |
pankso@20 | 107 gettext "is not blocked"; newline |
pankso@20 | 108 fi |
pankso@20 | 109 continue ;; |
pankso@20 | 110 *\ --rm\ *) |
pankso@20 | 111 [ -d "$installed/$pkg" ] || continue |
pankso@20 | 112 spk-rm $pkg --count=$count |
pankso@20 | 113 count=$(($count + 1)) |
pankso@20 | 114 continue ;; |
pankso@20 | 115 esac |
pankso@20 | 116 count=$(($count + 1)) |
pankso@19 | 117 [ "$count" == 1 ] && newline |
pankso@19 | 118 unset_receipt |
pankso@19 | 119 . $installed/$pkg/receipt |
pankso@19 | 120 boldify "$(gettext "Package") $pkg" |
pankso@19 | 121 separator |
pankso@22 | 122 gettext "Status :"; colorize " installed" 32 |
pankso@19 | 123 receipt_info |
pankso@19 | 124 separator && newline |
pankso@19 | 125 continue |
pankso@19 | 126 fi |
pankso@19 | 127 # Mirrored ? |
pankso@19 | 128 mirrored=$(grep "^$pkg |" $pkgsdesc) |
pankso@19 | 129 if [ "$mirrored" ]; then |
pankso@20 | 130 # Handle: --options |
pankso@20 | 131 case " $@ " in |
pankso@20 | 132 *\ --add\ *) |
pankso@20 | 133 echo "TODO: test 'spk-add $pkg'" |
pankso@20 | 134 continue ;; |
pankso@20 | 135 esac |
pankso@21 | 136 count=$(($count + 1)) |
pankso@20 | 137 [ "$count" == 1 ] && newline |
pankso@20 | 138 boldify "$(gettext "Package") $pkg" |
pankso@20 | 139 separator |
pankso@22 | 140 gettext "Status :"; colorize " not installed" 31 |
pankso@20 | 141 echo "$mirrored" | awk 'BEGIN { FS = "|" } ; { print \ |
pankso@20 | 142 "Version :" $2 "\n" \ |
pankso@20 | 143 "Short desc :" $3 "\n" \ |
pankso@20 | 144 "Category :" $4 }' |
pankso@20 | 145 separator && newline |
pankso@19 | 146 continue |
pankso@19 | 147 fi |
pankso@19 | 148 # Skip options such as --confirm or unknow package |
pankso@19 | 149 case "$pkg" in |
pankso@19 | 150 --*) continue ;; |
pankso@20 | 151 *) gettext "WARNING: Unknow package"; echo ": $pkg" |
pankso@19 | 152 esac |
pankso@19 | 153 done |
pankso@19 | 154 exit 0 |