spk annotate spk @ rev 60
Bunch of improvment, new extract_fileslist function in libspk.sh
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu May 17 23:40:23 2012 +0200 (2012-05-17) |
parents | c14dd480d1d4 |
children | 63fb720dc777 |
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@60 | 52 extra=$(ls $extradb | wc -l) |
pankso@19 | 53 newline |
pankso@59 | 54 boldify "Spk info" |
pankso@19 | 55 separator |
pankso@60 | 56 gettext "Architecture :"; echo " $SLITAZ_ARCH" |
pankso@60 | 57 gettext "Database :"; echo " $installed" |
pankso@60 | 58 gettext "Cache info :"; echo " $cache" |
pankso@60 | 59 gettext "Mirror URL :"; echo " $(cat $mirrorurl)" |
pankso@60 | 60 gettext "Extra mirrors :"; echo " $extra" |
pankso@19 | 61 count_installed |
pankso@19 | 62 count_mirrored |
pankso@19 | 63 separator |
pankso@19 | 64 newline && exit 0 ;; |
pankso@19 | 65 activity) |
pankso@58 | 66 # --lines=NB |
pankso@58 | 67 : ${lines=18} |
pankso@19 | 68 newline |
pankso@19 | 69 boldify "Spk Activity" |
pankso@19 | 70 separator |
pankso@58 | 71 cat $activity | tail -n $lines |
pankso@19 | 72 separator && newline |
pankso@19 | 73 exit 0 ;; |
pankso@19 | 74 esac |
pankso@19 | 75 |
pankso@19 | 76 # |
pankso@19 | 77 # Handle packages: spk package1 ... packageN |
pankso@19 | 78 # |
pankso@19 | 79 |
pankso@59 | 80 debug "cmdline: $@" |
pankso@19 | 81 count=0 |
pankso@19 | 82 |
pankso@19 | 83 for pkg in $@ |
pankso@19 | 84 do |
pankso@19 | 85 # Installed ? |
pankso@19 | 86 if [ -d "$installed/$pkg" ]; then |
pankso@20 | 87 # Handle: --options |
pankso@20 | 88 case " $@ " in |
pankso@20 | 89 *\ --block\ *) |
pankso@20 | 90 check_root |
pankso@20 | 91 [ -d "$installed/$pkg" ] || continue |
pankso@20 | 92 if grep -qs ^${pkg}$ $blocked; then |
pankso@20 | 93 echo -n "$(boldify "$pkg") " |
pankso@20 | 94 gettext "is already blocked"; newline |
pankso@20 | 95 else |
pankso@20 | 96 gettext "Blocking package:"; echo -n " $pkg" |
pankso@20 | 97 echo $pkg >> $blocked |
pankso@20 | 98 log "Blocked package: $pkg" && status |
pankso@20 | 99 fi |
pankso@20 | 100 continue ;; |
pankso@20 | 101 *\ --unblock\ *) |
pankso@20 | 102 check_root |
pankso@20 | 103 [ -d "$installed/$pkg" ] || continue |
pankso@20 | 104 if grep -qs ^${pkg}$ $blocked; then |
pankso@20 | 105 gettext "Unblocking package:"; echo -n " $pkg" |
pankso@20 | 106 sed -i /"^${pkg}$"/d $blocked |
pankso@20 | 107 log "Unblocked package: $pkg" && status |
pankso@20 | 108 else |
pankso@20 | 109 echo -n "$(boldify "$pkg") " |
pankso@20 | 110 gettext "is not blocked"; newline |
pankso@20 | 111 fi |
pankso@20 | 112 continue ;; |
pankso@20 | 113 *\ --rm\ *) |
pankso@20 | 114 [ -d "$installed/$pkg" ] || continue |
pankso@20 | 115 spk-rm $pkg --count=$count |
pankso@20 | 116 count=$(($count + 1)) |
pankso@20 | 117 continue ;; |
pankso@58 | 118 *\ --log\ *) |
pankso@58 | 119 # Display packges log's |
pankso@58 | 120 if [ -f "$logdir/$pkg/install.log" ]; then |
pankso@58 | 121 count=$(($count + 1)) |
pankso@58 | 122 [ "$count" == "1" ] && newline |
pankso@58 | 123 colorize "$(gettext "Install log for:"; echo " $pkg")" 36 |
pankso@58 | 124 separator |
pankso@58 | 125 cat $logdir/$pkg/install.log |
pankso@58 | 126 else |
pankso@58 | 127 gettext "Any install log for:"; boldify " $pkg" |
pankso@58 | 128 fi |
pankso@58 | 129 if [ -f "$logdir/$pkg/up.log" ]; then |
pankso@58 | 130 colorize "$(gettext "Upgrade log for:"; echo " $pkg")" 36 |
pankso@58 | 131 separator |
pankso@58 | 132 cat $logdir/$pkg/up.log |
pankso@58 | 133 else |
pankso@58 | 134 gettext "Any upgrade log for:"; boldify " $pkg" |
pankso@58 | 135 newline |
pankso@58 | 136 fi |
pankso@58 | 137 |
pankso@58 | 138 continue ;; |
pankso@20 | 139 esac |
pankso@20 | 140 count=$(($count + 1)) |
pankso@19 | 141 [ "$count" == 1 ] && newline |
pankso@19 | 142 unset_receipt |
pankso@19 | 143 . $installed/$pkg/receipt |
pankso@19 | 144 boldify "$(gettext "Package") $pkg" |
pankso@19 | 145 separator |
pankso@22 | 146 gettext "Status :"; colorize " installed" 32 |
pankso@19 | 147 receipt_info |
pankso@19 | 148 separator && newline |
pankso@19 | 149 continue |
pankso@19 | 150 fi |
pankso@19 | 151 # Mirrored ? |
pankso@19 | 152 mirrored=$(grep "^$pkg |" $pkgsdesc) |
pankso@19 | 153 if [ "$mirrored" ]; then |
pankso@20 | 154 # Handle: --options |
pankso@20 | 155 case " $@ " in |
pankso@20 | 156 *\ --add\ *) |
pankso@58 | 157 spk-add $pkg --count=$count |
pankso@58 | 158 count=$(($count + 1)) |
pankso@58 | 159 continue ;; |
pankso@20 | 160 esac |
pankso@21 | 161 count=$(($count + 1)) |
pankso@20 | 162 [ "$count" == 1 ] && newline |
pankso@20 | 163 boldify "$(gettext "Package") $pkg" |
pankso@20 | 164 separator |
pankso@22 | 165 gettext "Status :"; colorize " not installed" 31 |
pankso@20 | 166 echo "$mirrored" | awk 'BEGIN { FS = "|" } ; { print \ |
pankso@20 | 167 "Version :" $2 "\n" \ |
pankso@20 | 168 "Short desc :" $3 "\n" \ |
pankso@20 | 169 "Category :" $4 }' |
pankso@20 | 170 separator && newline |
pankso@19 | 171 continue |
pankso@19 | 172 fi |
pankso@19 | 173 # Skip options such as --confirm or unknow package |
pankso@19 | 174 case "$pkg" in |
pankso@19 | 175 --*) continue ;; |
pankso@20 | 176 *) gettext "WARNING: Unknow package"; echo ": $pkg" |
pankso@19 | 177 esac |
pankso@19 | 178 done |
pankso@19 | 179 exit 0 |