tazpkg annotate lib/tazpkgbox/list @ rev 245
tazpkgbox: compute icon for each selection
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Mar 06 10:13:25 2009 +0000 (2009-03-06) |
parents | 174934be85f9 |
children | 178a6ed58f61 |
rev | line source |
---|---|
pankso@81 | 1 #!/bin/sh |
pankso@81 | 2 # |
pankso@81 | 3 # List installed packages in a suitable format for GTK tree. |
pankso@81 | 4 # List mirrored packages using the packages.desc file. |
pankso@81 | 5 # |
pankso@81 | 6 |
pascal@187 | 7 undigest_list() |
pascal@187 | 8 { |
pascal@187 | 9 IFS="|" |
pascal@213 | 10 if [ -n "$1" -a "$1" != "all" ]; then |
pascal@187 | 11 cat /var/lib/tazpkg/undigest/$1/packages.desc |
pascal@187 | 12 else |
pascal@187 | 13 cat /var/lib/tazpkg/undigest/*/packages.desc |
pascal@187 | 14 fi 2> /dev/null | sort | while read PACKAGE VERSION SHORT_DESC; do |
pascal@243 | 15 ICON=tazpkg |
pascal@243 | 16 if [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ]; then |
pascal@243 | 17 . /var/lib/tazpkg/installed/${PACKAGE%% *}/receipt |
pascal@243 | 18 ICON=tazpkg-installed |
pascal@244 | 19 if grep -qs "^$PACKAGE$" /var/lib/tazpkg/blocked-packages.list; then |
pascal@244 | 20 ICON=stop |
pascal@244 | 21 fi |
pascal@243 | 22 fi |
pascal@243 | 23 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" |
pascal@187 | 24 done |
pascal@187 | 25 unset IFS |
pascal@187 | 26 } |
pascal@187 | 27 |
pascal@130 | 28 installable_list() |
pascal@130 | 29 { |
pascal@130 | 30 IFS="|" |
pascal@187 | 31 cat /var/lib/tazpkg/packages.desc \ |
pascal@187 | 32 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ |
pascal@130 | 33 while read PACKAGE VERSION SHORT_DESC; do |
pankso@231 | 34 # Check first for category for more speed. |
pankso@231 | 35 CATEGORY=${CATEGORY%| *} |
pascal@245 | 36 ICON=tazpkg |
pankso@231 | 37 if [ "$CAT" == "all" ] || [ "$CATEGORY" == " $CAT " ]; then |
pankso@231 | 38 [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ] && continue |
pankso@231 | 39 fi |
pascal@245 | 40 grep -qs "^$PACKAGE" /var/lib/tazpkg/undigest/*/packages.desc && |
pascal@245 | 41 ICON=add |
pascal@245 | 42 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" |
pascal@187 | 43 done |
pascal@130 | 44 unset IFS |
pascal@130 | 45 } |
pascal@130 | 46 |
pascal@130 | 47 installed_list() |
pascal@130 | 48 { |
pascal@130 | 49 for pkg in /var/lib/tazpkg/installed/* |
pascal@130 | 50 do |
pascal@130 | 51 . $pkg/receipt |
pascal@245 | 52 ICON=tazpkg-installed |
pascal@245 | 53 [ "$CAT" == "all" -o "$CATEGORY" == "$CAT" ] || continue |
pascal@245 | 54 grep -qs "^$PACKAGE" /var/lib/tazpkg/undigest/*/packages.desc && |
pascal@245 | 55 ICON=add |
pascal@245 | 56 grep -qs "^$PACKAGE$" /var/lib/tazpkg/blocked-packages.list && |
pascal@245 | 57 ICON=stop |
pascal@245 | 58 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" |
pascal@130 | 59 done |
pascal@130 | 60 } |
pascal@130 | 61 |
pankso@231 | 62 all_list() |
pankso@231 | 63 { |
pankso@231 | 64 IFS="|" |
pankso@231 | 65 cat /var/lib/tazpkg/packages.desc \ |
pankso@231 | 66 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ |
pankso@231 | 67 while read PACKAGE VERSION SHORT_DESC CATEGORY; do |
pankso@231 | 68 # Check first for category for more speed. |
pankso@231 | 69 CATEGORY=${CATEGORY%| *} |
pankso@231 | 70 if [ "$CAT" == "all" ] || [ "$CATEGORY" == " $CAT " ]; then |
pascal@243 | 71 ICON=tazpkg |
pascal@244 | 72 if grep -qs "^$PACKAGE" /var/lib/tazpkg/undigest/*/packages.desc ; then |
pascal@244 | 73 ICON=add |
pascal@244 | 74 fi |
pankso@231 | 75 if [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ]; then |
pankso@231 | 76 . /var/lib/tazpkg/installed/${PACKAGE%% *}/receipt |
pascal@243 | 77 ICON=tazpkg-installed |
pascal@244 | 78 if grep -qs "^$PACKAGE$" /var/lib/tazpkg/blocked-packages.list; then |
pascal@244 | 79 ICON=stop |
pascal@244 | 80 fi |
pankso@231 | 81 fi |
pascal@243 | 82 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" |
pankso@231 | 83 fi |
pankso@231 | 84 done |
pankso@231 | 85 unset IFS |
pankso@231 | 86 } |
pankso@231 | 87 |
pascal@178 | 88 blocked_list() |
pascal@178 | 89 { |
pascal@178 | 90 for pkg in /var/lib/tazpkg/installed/* |
pascal@178 | 91 do |
pascal@178 | 92 . $pkg/receipt |
pascal@178 | 93 if grep -qs "^$(basename $pkg)$" /var/lib/tazpkg/blocked-packages.list; then |
pascal@245 | 94 AVAILABLE=$(grep -s "^$(basename $pkg) " /var/lib/tazpkg/packages.desc /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }') |
pankso@231 | 95 echo "stop|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC" |
pascal@178 | 96 fi |
pascal@178 | 97 done |
pascal@178 | 98 } |
pascal@178 | 99 |
pankso@81 | 100 case $1 in |
pankso@231 | 101 all) |
pankso@231 | 102 STATUS=`cat /tmp/tazpkgbox/status` |
pankso@231 | 103 case $STATUS in |
pankso@231 | 104 blocked) |
pankso@231 | 105 blocked_list ;; |
pankso@231 | 106 installed) |
pankso@231 | 107 CAT=`cat /tmp/tazpkgbox/category` |
pankso@231 | 108 installed_list ;; |
pankso@231 | 109 installable) |
pankso@231 | 110 CAT=`cat /tmp/tazpkgbox/category` |
pankso@231 | 111 installable_list ;; |
pankso@231 | 112 *) |
pankso@231 | 113 CAT=`cat /tmp/tazpkgbox/category` |
pankso@231 | 114 all_list ;; |
pankso@231 | 115 esac ;; |
pascal@187 | 116 undigest) |
pascal@187 | 117 set -- `cat /tmp/tazpkgbox/undigest-category` |
pascal@187 | 118 if [ "$1" == "all" -o "$1" == "" ]; then |
pascal@187 | 119 undigest_list $2 |
pascal@187 | 120 else |
pascal@187 | 121 undigest_list $2 | grep "$1" |
pascal@187 | 122 fi ;; |
pascal@178 | 123 blocked) |
pankso@231 | 124 blocked_list ;; |
pankso@81 | 125 *) |
pankso@231 | 126 echo "Usage: $0 [all|undigest|blocked]" ;; |
pankso@81 | 127 esac |
pankso@81 | 128 |
pankso@81 | 129 exit 0 |