tazpkg rev 300
Speedup tazpkgbox refresh
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Sep 30 16:50:13 2009 +0200 (2009-09-30) |
parents | 1703cc22888b |
children | 4c0c9d845432 |
files | lib/tazpkgbox/list |
line diff
1.1 --- a/lib/tazpkgbox/list Wed Sep 30 14:32:08 2009 +0200 1.2 +++ b/lib/tazpkgbox/list Wed Sep 30 16:50:13 2009 +0200 1.3 @@ -13,8 +13,8 @@ 1.4 cat /var/lib/tazpkg/undigest/*/packages.desc 1.5 fi 2> /dev/null | sort | while read PACKAGE VERSION SHORT_DESC; do 1.6 ICON=tazpkg 1.7 - if [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ]; then 1.8 - . /var/lib/tazpkg/installed/${PACKAGE%% *}/receipt 1.9 + PACKAGE=${PACKAGE%% *} 1.10 + if [ -d /var/lib/tazpkg/installed/$PACKAGE ]; then 1.11 ICON=tazpkg-installed 1.12 if grep -qs "^$PACKAGE$" /var/lib/tazpkg/blocked-packages.list; then 1.13 ICON=stop 1.14 @@ -27,6 +27,13 @@ 1.15 1.16 installable_list() 1.17 { 1.18 + local cache 1.19 + cache=/var/lib/tazpkg/packages.installable_list.$CAT 1.20 + if [ -s $cache -a $cache -nt /var/lib/tazpkg/packages.desc \ 1.21 + -a $cache -nt /var/lib/tazpkg/installed ]; then 1.22 + cat $cache 1.23 + return 1.24 + fi 1.25 IFS="|" 1.26 cat /var/lib/tazpkg/packages.desc \ 1.27 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ 1.28 @@ -34,12 +41,12 @@ 1.29 # Check first for category for more speed. 1.30 CATEGORY=${CATEGORY%| *} 1.31 ICON=tazpkg 1.32 - [ "$CAT" == "all" -o "$CATEGORY" == "$CAT" ] || continue 1.33 + [ $CAT == all -o $CATEGORY == $CAT ] || continue 1.34 [ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ] && continue 1.35 grep -qs "^$PACKAGE" /var/lib/tazpkg/undigest/*/packages.desc && 1.36 ICON=add 1.37 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" 1.38 - done 1.39 + done | tee $cache 1.40 unset IFS 1.41 } 1.42 1.43 @@ -49,7 +56,7 @@ 1.44 do 1.45 . $pkg/receipt 1.46 ICON=tazpkg-installed 1.47 - [ "$CAT" == "all" -o "$CATEGORY" == "$CAT" ] || continue 1.48 + [ $CAT == all -o $CATEGORY == $CAT ] || continue 1.49 grep -qs "^$PACKAGE" /var/lib/tazpkg/undigest/*/packages.desc && 1.50 ICON=add 1.51 grep -qs "^$PACKAGE$" /var/lib/tazpkg/blocked-packages.list && 1.52 @@ -60,18 +67,24 @@ 1.53 1.54 all_list() 1.55 { 1.56 - ( installable_list ; installed_list ) | sort -t \| -k 2 -u 1.57 + local cache 1.58 + cache=/var/lib/tazpkg/packages.all_list.$CAT 1.59 + if [ -s $cache -a $cache -nt /var/lib/tazpkg/packages.desc \ 1.60 + -a $cache -nt /var/lib/tazpkg/installed ]; then 1.61 + cat $cache 1.62 + return 1.63 + fi 1.64 + ( installable_list ; installed_list ) | sort -t \| -k 2 -u | tee $cache 1.65 } 1.66 1.67 blocked_list() 1.68 { 1.69 - for pkg in /var/lib/tazpkg/installed/* 1.70 - do 1.71 - . $pkg/receipt 1.72 - if grep -qs "^$(basename $pkg)$" /var/lib/tazpkg/blocked-packages.list; then 1.73 - AVAILABLE=$(grep -s "^$(basename $pkg) " /var/lib/tazpkg/packages.desc /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }') 1.74 - echo "stop|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC" 1.75 - fi 1.76 + for pkg in $(cat /var/lib/tazpkg/blocked-packages.list 2> /dev/null); do 1.77 + [ -f /var/lib/tazpkg/installed/$pkg/receipt ] || continue 1.78 + . /var/lib/tazpkg/installed/$pkg/receipt 1.79 + AVAILABLE=$(grep -s "^$pkg " /var/lib/tazpkg/packages.desc \ 1.80 + /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }') 1.81 + echo "stop|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC" 1.82 done 1.83 } 1.84