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