tazpkg view lib/tazpkgbox/list @ rev 231

tazpkgbox: update lib for new functions
author Christophe Lincoln <pankso@slitaz.org>
date Sat Feb 21 22:12:27 2009 +0100 (2009-02-21)
parents 9720c1c3d4f5
children d689a99ecd2d
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 echo "$PACKAGE|$VERSION|$SHORT_DESC"
16 done
17 unset IFS
18 }
20 installable_list()
21 {
22 IFS="|"
23 cat /var/lib/tazpkg/packages.desc \
24 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \
25 while read PACKAGE VERSION SHORT_DESC; do
26 # Check first for category for more speed.
27 CATEGORY=${CATEGORY%| *}
28 if [ "$CAT" == "all" ] || [ "$CATEGORY" == " $CAT " ]; then
29 [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ] && continue
30 echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC"
31 fi
32 done
33 unset IFS
34 }
36 installed_list()
37 {
38 for pkg in /var/lib/tazpkg/installed/*
39 do
40 . $pkg/receipt
41 if [ "$CAT" == "all" -o "$CATEGORY" == "$CAT" ]; then
42 echo "go-next|$PACKAGE|$VERSION|$SHORT_DESC"
43 fi
44 done
45 }
47 all_list()
48 {
49 IFS="|"
50 cat /var/lib/tazpkg/packages.desc \
51 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \
52 while read PACKAGE VERSION SHORT_DESC CATEGORY; do
53 # Check first for category for more speed.
54 CATEGORY=${CATEGORY%| *}
55 if [ "$CAT" == "all" ] || [ "$CATEGORY" == " $CAT " ]; then
56 if [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ]; then
57 . /var/lib/tazpkg/installed/${PACKAGE%% *}/receipt
58 echo "go-next|$PACKAGE|$VERSION|$SHORT_DESC"
59 else
60 echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC"
61 fi
62 fi
63 done
64 unset IFS
65 }
67 blocked_list()
68 {
69 for pkg in /var/lib/tazpkg/installed/*
70 do
71 . $pkg/receipt
72 if grep -qs "^$(basename $pkg)$" /var/lib/tazpkg/blocked-packages.list; then
73 AVAILABLE=$(grep "^$(basename $pkg) " /var/lib/tazpkg/packages.desc | awk '{ print $3 }')
74 echo "stop|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC"
75 fi
76 done
77 }
79 case $1 in
80 all)
81 STATUS=`cat /tmp/tazpkgbox/status`
82 case $STATUS in
83 blocked)
84 blocked_list ;;
85 installed)
86 CAT=`cat /tmp/tazpkgbox/category`
87 installed_list ;;
88 installable)
89 CAT=`cat /tmp/tazpkgbox/category`
90 installable_list ;;
91 *)
92 CAT=`cat /tmp/tazpkgbox/category`
93 all_list ;;
94 esac ;;
95 undigest)
96 set -- `cat /tmp/tazpkgbox/undigest-category`
97 if [ "$1" == "all" -o "$1" == "" ]; then
98 undigest_list $2
99 else
100 undigest_list $2 | grep "$1"
101 fi ;;
102 blocked)
103 blocked_list ;;
104 *)
105 echo "Usage: $0 [all|undigest|blocked]" ;;
106 esac
108 exit 0