tazpkg annotate lib/tazpkgbox/list @ rev 347

Add tazpkg french translation (not yet complet)
author Christophe Lincoln <pankso@slitaz.org>
date Sun Jun 20 19:42:10 2010 +0200 (2010-06-20)
parents 317b65f3d2a0
children
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@322 11 cat undigest/$1/packages.desc
pascal@187 12 else
pascal@322 13 cat undigest/*/packages.desc
pascal@187 14 fi 2> /dev/null | sort | while read PACKAGE VERSION SHORT_DESC; do
pascal@243 15 ICON=tazpkg
pascal@300 16 PACKAGE=${PACKAGE%% *}
pascal@322 17 if [ -d installed/$PACKAGE ]; then
pascal@322 18 [ "$2" == "installable" ] && continue
pascal@243 19 ICON=tazpkg-installed
pascal@322 20 if grep -qs "^$PACKAGE$" blocked-packages.list; then
pascal@244 21 ICON=stop
pascal@244 22 fi
pascal@322 23 else
pascal@322 24 [ "$2" == "installed" ] && continue
pascal@243 25 fi
pascal@322 26 [ "$2" == "blocked" -a "$ICON" != "stop" ] && continue
pascal@322 27 [ "$2" == "upgradeable" ] &&
pascal@322 28 ! grep -q ^$PACKAGE$ upgradeable-packages.list && continue
pascal@243 29 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC"
pascal@187 30 done
pascal@187 31 unset IFS
pascal@187 32 }
pascal@187 33
pascal@130 34 installable_list()
pascal@130 35 {
pascal@300 36 local cache
pascal@322 37 cache=packages.installable_list.$CAT
pascal@322 38 if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then
pascal@300 39 cat $cache
pascal@300 40 return
pascal@300 41 fi
pascal@130 42 IFS="|"
pascal@322 43 cat packages.desc undigest/*/packages.desc 2> /dev/null | sort | \
pascal@315 44 while read PACKAGE VERSION SHORT_DESC CATEGORY; do
pankso@231 45 # Check first for category for more speed.
pankso@231 46 CATEGORY=${CATEGORY%| *}
pascal@245 47 ICON=tazpkg
pascal@315 48 [ $CAT == all -o $CATEGORY == " $CAT " ] || continue
pascal@322 49 [ -d installed/${PACKAGE%% *} ] && continue
pascal@322 50 grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add
pascal@245 51 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC"
pascal@300 52 done | tee $cache
pascal@130 53 unset IFS
pascal@130 54 }
pascal@130 55
pascal@130 56 installed_list()
pascal@130 57 {
pascal@326 58 for pkg in ${1}installed/*
pascal@130 59 do
pascal@326 60 [ -n "$1" -a -s installed/$(basename $pkg)/receipt ] && continue
pascal@130 61 . $pkg/receipt
pascal@245 62 ICON=tazpkg-installed
pascal@300 63 [ $CAT == all -o $CATEGORY == $CAT ] || continue
pascal@326 64 if [ -n "$1" -o -L $pkg ]; then
pascal@326 65 ICON=media-flash
pascal@326 66 else
pascal@326 67 grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add
pascal@326 68 fi
pascal@322 69 grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop
pascal@245 70 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC"
pascal@130 71 done
pascal@130 72 }
pascal@130 73
pankso@231 74 all_list()
pankso@231 75 {
pascal@300 76 local cache
pascal@322 77 cache=packages.all_list.$CAT
pascal@322 78 if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then
pascal@300 79 cat $cache
pascal@300 80 return
pascal@300 81 fi
pascal@300 82 ( installable_list ; installed_list ) | sort -t \| -k 2 -u | tee $cache
pankso@231 83 }
pankso@231 84
pascal@178 85 blocked_list()
pascal@178 86 {
pascal@321 87 ICON=tazpkg-installed
pascal@321 88 [ "$1" = "blocked" ] && ICON=stop
pascal@322 89 for pkg in $(cat $1-packages.list 2> /dev/null); do
pascal@322 90 [ -f installed/$pkg/receipt ] || continue
pascal@322 91 . installed/$pkg/receipt
pascal@321 92 [ $CAT == all -o $CATEGORY == $CAT ] || continue
pascal@322 93 AVAILABLE=$(grep -s "^$pkg " packages.desc \
pascal@322 94 undigest/*/packages.desc | awk '{ print $3 }')
pascal@321 95 echo "$ICON|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC"
pascal@178 96 done
pascal@178 97 }
pascal@178 98
pascal@322 99 cd /var/lib/tazpkg
pascal@321 100 CAT=`cat /tmp/tazpkgbox/category`
pankso@81 101 case $1 in
pankso@231 102 all)
pankso@231 103 STATUS=`cat /tmp/tazpkgbox/status`
pankso@231 104 case $STATUS in
pascal@319 105 blocked|upgradeable)
pascal@319 106 blocked_list $STATUS;;
pascal@326 107 linkable)
pascal@326 108 [ -d fslink ] && installed_list \
pascal@326 109 $(readlink fslink)/var/lib/tazpkg/;;
pankso@231 110 installed)
pankso@231 111 installed_list ;;
pankso@231 112 installable)
pankso@231 113 installable_list ;;
pankso@231 114 *)
pankso@231 115 all_list ;;
pankso@231 116 esac ;;
pascal@187 117 undigest)
pascal@187 118 set -- `cat /tmp/tazpkgbox/undigest-category`
pascal@187 119 if [ "$1" == "all" -o "$1" == "" ]; then
pascal@322 120 undigest_list $2 $3
pascal@187 121 else
pascal@322 122 undigest_list $2 $3 | grep "$1"
pascal@187 123 fi ;;
pascal@319 124 blocked|upgradeable)
pascal@319 125 blocked_list $1;;
pankso@81 126 *)
pascal@319 127 echo "Usage: $0 [all|undigest|blocked|upgradeable]" ;;
pankso@81 128 esac
pankso@81 129
pankso@81 130 exit 0