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