tazpkg view lib/tazpkgbox/list @ rev 254

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