# HG changeset patch # User Pascal Bellard # Date 1339347892 -7200 # Node ID bcf91a0f91d9f1bf4385130881e1adb8d0bdf225 # Parent 4b8f5923e787cfbd3a50fc01413af708e69e9c0c pkgs/search.sh: add tag cloud diff -r 4b8f5923e787 -r bcf91a0f91d9 pkgs/search.sh --- a/pkgs/search.sh Tue May 29 07:25:25 2012 +0000 +++ b/pkgs/search.sh Sun Jun 10 19:04:52 2012 +0200 @@ -786,20 +786,50 @@ ### Tags Tags) - cat << _EOT_ + if [ -n "$SEARCH" ]; then + cat << _EOT_

$(eval_gettext "Result for: \$SEARCH")

_EOT_ - last="" - grep ^TAGS= $WOK/*/receipt | grep -i "$SEARCH" | \ - sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do - . $WOK/$pkg/receipt - package_entry - done - cat << _EOT_ + last="" + grep ^TAGS= $WOK/*/receipt | grep -i "$SEARCH" | \ + sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do + . $WOK/$pkg/receipt + package_entry + done + cat << _EOT_
_EOT_ + else + # Display tag cloud + grep -l ^TAGS= $WOK/*/receipt | while read file; do + TAGS= + . $file + echo $TAGS + done | awk ' +{ + for (i = 1; $i != ""; i++) + count[$i]++ +} +END { + min=10000 + max=0 + for (i in count) { + if (count[i] < min) min = count[i] + if (count[i] > max) max = count[i] + } + for (i in count) + print count[i] " " min " " max " " i +}' | while read cnt min max tag ; do + cat <\ +$cnt$tag +EOT + done + fi ;;