tazpkg annotate lib/tazpkgbox/search @ rev 323
Show search Description button
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Feb 23 10:12:13 2010 +0100 (2010-02-23) |
parents | 9b57d55f7f65 |
children |
rev | line source |
---|---|
pankso@81 | 1 #!/bin/sh |
pankso@81 | 2 # |
MikeDSmith25@135 | 3 # This script provides a suitable output for the search results. |
pankso@81 | 4 # |
pankso@81 | 5 |
pankso@81 | 6 # Clean preview results. |
pankso@233 | 7 rm -f /tmp/tazpkgbox/search |
pankso@233 | 8 touch /tmp/tazpkgbox/search |
pankso@81 | 9 |
pascal@100 | 10 list_files() |
pascal@100 | 11 { |
pascal@100 | 12 sed 's/.\[[01]m//g' | awk 'BEGIN { show=0 } { |
pascal@100 | 13 if (/^===/) show=1-show; |
pascal@100 | 14 else if (/^Package/) pkg=$2; |
pascal@169 | 15 else if ($0 != "" && show != 0) printf("%s %s\n",pkg,$0); |
pascal@169 | 16 }' | while read pkg file; do |
pascal@169 | 17 [ "$pkg" = "0" ] && continue |
pascal@189 | 18 version=$(grep -hs "^$pkg " /var/lib/tazpkg/packages.desc \ |
pascal@189 | 19 /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }') |
pankso@233 | 20 if [ -d /var/lib/tazpkg/installed/$pkg ]; then |
pankso@235 | 21 if [ -x $file ]; then |
pankso@235 | 22 echo "exec|$pkg|$version|$file" |
pankso@235 | 23 elif [ -f $file ]; then |
pankso@233 | 24 echo "txt|$pkg|$version|$file" |
pankso@233 | 25 elif [ -d $file ] ; then |
pankso@233 | 26 echo "folder|$pkg|$version|$file" |
pankso@233 | 27 else |
pankso@233 | 28 # Missing installed file. |
pankso@233 | 29 echo "dialog-warning|$pkg|$version|$file" |
pankso@233 | 30 fi |
pankso@233 | 31 else |
pankso@233 | 32 echo "tazpkg|$pkg|$version|$file" |
pankso@233 | 33 fi |
pascal@169 | 34 done |
pascal@100 | 35 } |
pascal@100 | 36 |
pascal@287 | 37 list_package() |
pascal@287 | 38 { |
pascal@287 | 39 if [ -d /var/lib/tazpkg/installed/$1 ]; then |
pascal@287 | 40 . /var/lib/tazpkg/installed/$1/receipt |
pascal@287 | 41 echo "tazpkg-installed|$PACKAGE|$VERSION|$SHORT_DESC" |
pascal@287 | 42 else |
pascal@287 | 43 echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC" |
pascal@287 | 44 fi |
pascal@287 | 45 } |
pascal@287 | 46 |
pankso@233 | 47 search_package() |
pankso@233 | 48 { |
pankso@233 | 49 IFS="|" |
pankso@233 | 50 cat /var/lib/tazpkg/packages.desc \ |
pankso@233 | 51 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ |
pankso@233 | 52 while read PACKAGE VERSION SHORT_DESC; do |
pascal@323 | 53 if echo "$PACKAGE $SHORT_DESC" | grep -iq "$SEARCH"; then |
pascal@287 | 54 list_package ${PACKAGE%% *} |
pankso@233 | 55 fi |
pankso@233 | 56 done |
pankso@233 | 57 unset IFS |
pankso@233 | 58 } |
pascal@100 | 59 |
pankso@233 | 60 case "$1" in |
pankso@233 | 61 files) |
pankso@233 | 62 tazpkg search-file "$SEARCH" --mirror | list_files > \ |
pankso@233 | 63 /tmp/tazpkgbox/search ;; |
pankso@233 | 64 packages) |
pascal@287 | 65 ( search_package ; |
pascal@287 | 66 for i in $(grep ^$SEARCH= /var/lib/tazpkg/packages.equiv | \ |
pascal@287 | 67 cut -d= -f2); do |
pascal@287 | 68 SEARCH=${i#*:} |
pascal@287 | 69 search_package |
pascal@287 | 70 done ) > /tmp/tazpkgbox/search ;; |
pascal@287 | 71 tags) |
pascal@287 | 72 grep -ls TAGS /home/slitaz/wok/*/receipt | while read file; do |
pascal@287 | 73 TAGS="" |
pascal@287 | 74 . $file |
pascal@287 | 75 case "$TAGS" in |
pascal@287 | 76 *$SEARCH*) list_package $PACKAGE ;; |
pascal@287 | 77 esac |
pascal@287 | 78 done > /tmp/tazpkgbox/search ;; |
pankso@233 | 79 *) |
pascal@287 | 80 echo "Usage: $0 [packages|files|tags]" ;; |
pankso@233 | 81 esac |
pankso@81 | 82 |
pankso@81 | 83 |
pankso@81 | 84 exit 0 |