slitaz-forge diff pkgs/search.sh @ rev 360
mirror-search.sh: unlinearize tag cloud
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Apr 06 13:12:32 2013 +0200 (2013-04-06) |
parents | d35926c24766 |
children | f7caab5251c0 |
line diff
1.1 --- a/pkgs/search.sh Mon Jul 16 18:48:52 2012 +0000 1.2 +++ b/pkgs/search.sh Sat Apr 06 13:12:32 2013 +0200 1.3 @@ -4,6 +4,8 @@ 1.4 # Aleksej Bobylev <al.bobylev@gmail.com> 1.5 # 1.6 1.7 +renice -n 19 $$ 1.8 + 1.9 # Parse query string 1.10 . /etc/slitaz/slitaz.conf 1.11 . /usr/lib/slitaz/httphelper.sh 1.12 @@ -65,6 +67,8 @@ 1.13 Package) NICE="package=$SEARCH";; 1.14 Desc) NICE="desc=$SEARCH";; 1.15 Tags) NICE="tags=$SEARCH";; 1.16 + Arch) NICE="arch=$SEARCH";; 1.17 + Bugs) NICE="bugs=$SEARCH";; 1.18 Receipt) NICE="receipt=$SEARCH";; 1.19 Depends) NICE="depends=$SEARCH";; 1.20 BuildDepends) NICE="builddepends=$SEARCH";; 1.21 @@ -116,7 +120,7 @@ 1.22 . /usr/bin/gettext.sh 1.23 export TEXTDOMAIN='tazpkg-web' 1.24 1.25 -SEARCH="" 1.26 +unset SEARCH 1.27 VERBOSE=0 1.28 for i in $(echo $QUERY_STRING | sed 's/[?&]/ /g'); do 1.29 # SLITAZ_VERSION=cooking 1.30 @@ -128,6 +132,8 @@ 1.31 file=*) SEARCH=${i#*=}; OBJECT=File;; 1.32 desc=*) SEARCH=${i#*=}; OBJECT=Desc;; 1.33 tags=*) SEARCH=${i#*=}; OBJECT=Tags;; 1.34 + arch=*) SEARCH=${i#*=}; OBJECT=Arch;; 1.35 + bugs=*) SEARCH=${i#*=}; OBJECT=Bugs;; 1.36 receipt=*) SEARCH=${i#*=}; OBJECT=Receipt;; 1.37 filelist=*) SEARCH=${i#*=}; OBJECT=File_list;; 1.38 package=*) SEARCH=${i#*=}; OBJECT=Package;; 1.39 @@ -156,6 +162,8 @@ 1.40 File) selected_file="selected";; 1.41 Desc) selected_desc="selected";; 1.42 Tags) selected_tags="selected";; 1.43 + Arch) selected_arch="selected";; 1.44 + Bugs) selected_bugs="selected";; 1.45 Receipt) selected_receipt="selected";; 1.46 File_list) selected_file_list="selected";; 1.47 Depends) selected_depends="selected";; 1.48 @@ -175,7 +183,7 @@ 1.49 # unescape query 1.50 SEARCH="$(echo $SEARCH | sed 's/%2B/+/g; s/%3A/:/g; s|%2F|/|g')" 1.51 1.52 -WOK=$SLITAZ_HOME/$SLITAZ_VERSION/wok 1.53 +WOK=$SLITAZ_HOME/$SLITAZ_VERSION/wok-hg 1.54 PACKAGES_REPOSITORY=$SLITAZ_HOME/$SLITAZ_VERSION/packages 1.55 filelist=$PACKAGES_REPOSITORY/files.list.lzma 1.56 pkglist=$PACKAGES_REPOSITORY/packages.txt 1.57 @@ -196,6 +204,8 @@ 1.58 <option value="Package">$(gettext "Package")</option> 1.59 <option $selected_desc value="Desc">$(gettext "Description")</option> 1.60 <option $selected_tags value="Tags">$(gettext "Tags")</option> 1.61 + <option $selected_arch value="Arch">$(gettext "Arch")</option> 1.62 + <option $selected_bugs value="Bugs">$(gettext "Bugs")</option> 1.63 <option $selected_receipt value="Receipt">$(gettext "Receipt")</option> 1.64 <option $selected_depends value="Depends">$(gettext "Depends")</option> 1.65 <option $selected_build_depends value="BuildDepends">$(gettext "Build depends")</option> 1.66 @@ -231,6 +241,22 @@ 1.67 . lib/header.sh 1.68 } 1.69 1.70 +cat_files_list() 1.71 +{ 1.72 + local tmp=/tmp/files.list.$(basename ${1%/packages}) 1.73 + if [ ! -s $tmp -o $1/files.list.lzma -nt $tmp ]; then 1.74 + unlzma -c $1/files.list.lzma > $tmp.$$ && mv $tmp.$$ $tmp 1.75 + fi 1.76 + case "$2" in 1.77 + lines) if [ ! -s $tmp.lines -o $tmp -nt $tmp.lines ]; then 1.78 + cat $tmp | wc -l > $tmp.lines.$$ && 1.79 + mv $tmp.lines.$$ $tmp.lines 1.80 + fi 1.81 + cat $tmp.lines ;; 1.82 + *) cat $tmp ;; 1.83 + esac 1.84 +} 1.85 + 1.86 # xHTML Footer. 1.87 # TODO: caching the summary for 5 minutes 1.88 xhtml_footer() { 1.89 @@ -272,9 +298,9 @@ 1.90 _EOT_ 1.91 else 1.92 PACKAGE_HREF="<u>$PACKAGE</u>" 1.93 - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" 1.94 - nslookup mirror.slitaz.org | grep -q 127.0.0.1 && 1.95 - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" 1.96 + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" 1.97 + nslookup $(echo $MIRROR_URL | sed 's|http://||g') | grep -q 127.0.0.1 && 1.98 + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" 1.99 busybox wget -s $PACKAGE_URL 2> /dev/null && 1.100 PACKAGE_HREF="<a href=\"$PACKAGE_URL\">$PACKAGE</a>" 1.101 cat << _EOT_ 1.102 @@ -287,6 +313,7 @@ 1.103 </tr> 1.104 EOT 1.105 } 1.106 + 1.107 package_entry_inline() { 1.108 if [ -s "$(dirname $0)/$SLITAZ_VERSION/$CATEGORY.html" ]; then 1.109 cat << _EOT_ 1.110 @@ -294,9 +321,9 @@ 1.111 _EOT_ 1.112 else 1.113 PACKAGE_HREF="<u>$PACKAGE</u>" 1.114 - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" 1.115 - nslookup mirror.slitaz.org | grep -q 127.0.0.1 && 1.116 - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" 1.117 + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" 1.118 + nslookup $(echo $MIRROR_URL | sed 's|http://||g') | grep -q 127.0.0.1 && 1.119 + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" 1.120 busybox wget -s $PACKAGE_URL 2> /dev/null && 1.121 PACKAGE_HREF="<a href=\"$PACKAGE_URL\">$PACKAGE</a>" 1.122 cat << _EOT_ 1.123 @@ -361,9 +388,7 @@ 1.124 ) 1.125 fi 1.126 [ -f $WOK/$i/receipt ] || continue 1.127 - DEPENDS="" 1.128 - BUILD_DEPENDS="" 1.129 - WANTED="" 1.130 + unset BUILD_DEPENDS DEPENDS WANTED 1.131 . $WOK/$i/receipt 1.132 if [ -n "$3" ]; then 1.133 [ -n "$BUILD_DEPENDS$WANTED" ] && 1.134 @@ -385,9 +410,7 @@ 1.135 return;; 1.136 esac 1.137 for i in $WOK/* ; do 1.138 - DEPENDS="" 1.139 - BUILD_DEPENDS="" 1.140 - WANTED="" 1.141 + unset BUILD_DEPENDS DEPENDS WANTED 1.142 . $i/receipt 1.143 if [ -n "$2" ]; then 1.144 echo "$(basename $i) $(echo $WANTED $BUILD_DEPENDS)" 1.145 @@ -439,7 +462,7 @@ 1.146 } 1.147 1.148 display_packages_and_files() { 1.149 -last="" 1.150 +unset last 1.151 while read pkg file; do 1.152 pkg=${pkg%:} 1.153 if [ "$pkg" != "$last" ]; then 1.154 @@ -607,9 +630,9 @@ 1.155 <h3>$(eval_gettext "Dependency tree for: \$SEARCH")</h3> 1.156 <pre> 1.157 _EOT_ 1.158 - ALL_DEPS="" 1.159 + unset ALL_DEPS 1.160 dep_scan $SEARCH "" 1.161 - SUGGESTED="" 1.162 + unset SUGGESTED 1.163 . $WOK/$SEARCH/receipt 1.164 if [ -n "$SUGGESTED" ]; then 1.165 cat << _EOT_ 1.166 @@ -618,7 +641,7 @@ 1.167 <h3>$(eval_gettext "Dependency tree for: \$SEARCH (SUGGESTED)")</h3> 1.168 <pre> 1.169 _EOT_ 1.170 - ALL_DEPS="" 1.171 + unset ALL_DEPS 1.172 dep_scan "$SUGGESTED" " " 1.173 fi 1.174 cat << _EOT_ 1.175 @@ -627,7 +650,7 @@ 1.176 <h3>$(eval_gettext "Reverse dependency tree for: \$SEARCH")</h3> 1.177 <pre> 1.178 _EOT_ 1.179 - ALL_DEPS="" 1.180 + unset ALL_DEPS 1.181 rdep_scan $SEARCH 1.182 cat << _EOT_ 1.183 </pre> 1.184 @@ -660,7 +683,7 @@ 1.185 <h3>$(eval_gettext "\$SEARCH needs these packages to be built")</h3> 1.186 <pre> 1.187 _EOT_ 1.188 - ALL_DEPS="" 1.189 + unset ALL_DEPS 1.190 dep_scan $SEARCH "" build 1.191 cat << _EOT_ 1.192 </pre> 1.193 @@ -668,7 +691,7 @@ 1.194 <h3>$(eval_gettext "Packages who need \$SEARCH to be built")</h3> 1.195 <pre> 1.196 _EOT_ 1.197 - ALL_DEPS="" 1.198 + unset ALL_DEPS 1.199 rdep_scan $SEARCH build 1.200 cat << _EOT_ 1.201 </pre> 1.202 @@ -713,7 +736,7 @@ 1.203 <h3>$(eval_gettext "Result for: \$SEARCH")</h3> 1.204 <table> 1.205 _EOT_ 1.206 - last="" 1.207 + unset last 1.208 unlzma -c $filelist \ 1.209 | grep "$SEARCH" | while read pkg file; do 1.210 echo "$file" | grep -q "$SEARCH" || continue 1.211 @@ -750,7 +773,7 @@ 1.212 <h3>$(eval_gettext "Result for: \$SEARCH")</h3> 1.213 <pre> 1.214 _EOT_ 1.215 - last="" 1.216 + unset last 1.217 unlzma -c $filelist \ 1.218 | grep ^$SEARCH: | sed 's/.*: / /' | sort 1.219 cat << _EOT_ 1.220 @@ -784,7 +807,7 @@ 1.221 <h3>$(eval_gettext "Result for: \$SEARCH")</h3> 1.222 <table> 1.223 _EOT_ 1.224 - last="" 1.225 + unset last 1.226 grep -i "$SEARCH" $PACKAGES_REPOSITORY/packages.desc | \ 1.227 sort | while read pkg extras ; do 1.228 . $WOK/$pkg/receipt 1.229 @@ -796,6 +819,45 @@ 1.230 fi 1.231 ;; 1.232 1.233 +Bugs) 1.234 + cat << _EOT_ 1.235 + 1.236 +<h3>$(eval_gettext "Result for known bugs")</h3> 1.237 +<pre> 1.238 +_EOT_ 1.239 + unset last 1.240 + grep ^BUGS= $WOK/*/receipt | \ 1.241 + sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do 1.242 + unset BUGS 1.243 + . $WOK/$pkg/receipt 1.244 + package_entry_inline 1.245 + echo " $BUGS " 1.246 + done 1.247 + cat << _EOT_ 1.248 +</pre> 1.249 +_EOT_ 1.250 + ;; 1.251 + 1.252 + 1.253 +### Arch 1.254 +Arch) 1.255 + cat << _EOT_ 1.256 + 1.257 +<h3>$(eval_gettext "Result for: \$SEARCH")</h3> 1.258 +<pre> 1.259 +_EOT_ 1.260 + unset last 1.261 + grep ^HOST_ARCH= $WOK/*/receipt | grep -i "$SEARCH" | \ 1.262 + sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do 1.263 + unset HOST_ARCH 1.264 + . $WOK/$pkg/receipt 1.265 + echo " $HOST_ARCH " | grep -iq " $SEARCH " && 1.266 + package_entry_inline 1.267 + done 1.268 + cat << _EOT_ 1.269 +</pre> 1.270 +_EOT_ 1.271 + ;; 1.272 1.273 ### Tags 1.274 Tags) 1.275 @@ -805,7 +867,7 @@ 1.276 <h3>$(eval_gettext "Result for: \$SEARCH")</h3> 1.277 <table> 1.278 _EOT_ 1.279 - last="" 1.280 + unset last 1.281 grep ^TAGS= $WOK/*/receipt | grep -i "$SEARCH" | \ 1.282 sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do 1.283 . $WOK/$pkg/receipt 1.284 @@ -876,7 +938,7 @@ 1.285 do 1.286 . $WOK/$pkg/receipt 1.287 DESC=" <a href=\"?object=Desc&query=$pkg&lang=$lang&version=$SLITAZ_VERSION$(ifdebug '&')&submit=go\">$(gettext description)</a>" 1.288 - [ -f $WOK/$pkg/description.txt ] || DESC="" 1.289 + [ -f $WOK/$pkg/description.txt ] || unset DESC 1.290 cat << _EOT_ 1.291 $(package_entry)$DESC 1.292 _EOT_