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 |