slitaz-dev-tools annotate tazpkg-web/search.cgi @ rev 52

tazpkg-web: Remove conetent h1 in search.cgi
author Christophe Lincoln <pankso@slitaz.org>
date Wed Mar 30 02:42:08 2011 +0200 (2011-03-30)
parents de7883273a1d
children 81c09fe7f778
rev   line source
slaxemulator@13 1 #!/bin/sh
slaxemulator@13 2 # Tiny CGI search engine for SliTaz packages on http://pkgs.slitaz.org/
slaxemulator@13 3 # Christophe Lincoln <pankso@slitaz.org>
slaxemulator@13 4 #
slaxemulator@13 5
slaxemulator@13 6 read QUERY_STRING
slaxemulator@13 7 for i in $(echo $QUERY_STRING | sed 's/&/ /g'); do
slaxemulator@13 8 eval $i
slaxemulator@13 9 done
slaxemulator@13 10 LANG=$lang
slaxemulator@13 11 SEARCH=$query
slaxemulator@13 12 SLITAZ_VERSION=$version
slaxemulator@13 13 OBJECT=$object
slaxemulator@13 14 DATE=`date +%Y-%m-%d\ \%H:%M:%S`
slaxemulator@13 15 VERSION=cooking
slaxemulator@13 16 if [ "$REQUEST_METHOD" = "GET" ]; then
slaxemulator@13 17 SEARCH=""
slaxemulator@13 18 VERBOSE=0
slaxemulator@13 19 for i in $(echo $REQUEST_URI | sed 's/[?&]/ /g'); do
slaxemulator@13 20 SLITAZ_VERSION=cooking
slaxemulator@13 21 case "$(echo $i | tr [A-Z] [a-z])" in
slaxemulator@13 22 search=*)
slaxemulator@13 23 SEARCH=${i#*=};;
slaxemulator@13 24 object=*)
slaxemulator@13 25 OBJECT=${i#*=};;
slaxemulator@13 26 verbose=*)
slaxemulator@13 27 VERBOSE=${i#*=};;
slaxemulator@13 28 lang=*)
slaxemulator@13 29 LANG=${i#*=};;
slaxemulator@13 30 file=*)
slaxemulator@13 31 SEARCH=${i#*=}
slaxemulator@13 32 OBJECT=File;;
slaxemulator@13 33 desc=*)
slaxemulator@13 34 SEARCH=${i#*=}
slaxemulator@13 35 OBJECT=Desc;;
slaxemulator@13 36 tags=*)
slaxemulator@13 37 SEARCH=${i#*=}
slaxemulator@13 38 OBJECT=Tags;;
slaxemulator@13 39 receipt=*)
slaxemulator@13 40 SEARCH=${i#*=}
slaxemulator@13 41 OBJECT=Receipt;;
slaxemulator@13 42 filelist=*)
slaxemulator@13 43 SEARCH=${i#*=}
slaxemulator@13 44 OBJECT=File_list;;
slaxemulator@13 45 package=*)
slaxemulator@13 46 SEARCH=${i#*=}
slaxemulator@13 47 OBJECT=Package;;
slaxemulator@13 48 depends=*)
slaxemulator@13 49 SEARCH=${i#*=}
slaxemulator@13 50 OBJECT=Depends;;
slaxemulator@13 51 builddepends=*)
slaxemulator@13 52 SEARCH=${i#*=}
slaxemulator@13 53 OBJECT=BuildDepends;;
slaxemulator@13 54 fileoverlap=*)
slaxemulator@13 55 SEARCH=${i#*=}
slaxemulator@13 56 OBJECT=FileOverlap;;
slaxemulator@13 57 version=s*|version=3*)
slaxemulator@13 58 SLITAZ_VERSION=stable;;
slaxemulator@13 59 version=[1-9]*)
slaxemulator@13 60 i=${version%%.*}
slaxemulator@13 61 SLITAZ_VERSION=${i#*=}.0;;
slaxemulator@13 62 esac
slaxemulator@13 63 done
slaxemulator@13 64 [ -n "$SEARCH" ] && REQUEST_METHOD="POST"
slaxemulator@13 65 fi
slaxemulator@13 66
slaxemulator@13 67 case "$OBJECT" in
slaxemulator@13 68 File) selected_file="selected";;
slaxemulator@13 69 Desc) selected_desc="selected";;
slaxemulator@13 70 Tags) selected_tags="selected";;
slaxemulator@13 71 Receipt) selected_receipt="selected";;
slaxemulator@13 72 File_list) selected_file_list="selected";;
slaxemulator@13 73 Depends) selected_depends="selected";;
slaxemulator@13 74 BuildDepends) selected_build_depends="selected";;
slaxemulator@13 75 FileOverlap) selected_overlap="selected";;
slaxemulator@13 76 esac
slaxemulator@13 77
slaxemulator@13 78 case "$SLITAZ_VERSION" in
slaxemulator@13 79 1.0) selected_1="selected";;
slaxemulator@13 80 2.0) selected_2="selected";;
slaxemulator@13 81 stable) selected_stable="selected";;
slaxemulator@13 82 esac
slaxemulator@13 83
slaxemulator@13 84 # unescape query
slaxemulator@13 85 SEARCH="$(echo $SEARCH | sed 's/%2B/+/g' | sed 's/%3A/:/g' | sed 's|%2F|/|g')"
slaxemulator@13 86
slaxemulator@13 87 if [ -z "$LANG" ]; then
slaxemulator@13 88 for i in $(echo $HTTP_ACCEPT_LANGUAGE | sed 's/[,;]/ /g'); do
slaxemulator@13 89 case "$i" in
slaxemulator@13 90 fr|de|pt|cn)
slaxemulator@13 91 LANG=$i
slaxemulator@13 92 break;;
slaxemulator@13 93 esac
slaxemulator@13 94 done
slaxemulator@13 95 fi
slaxemulator@13 96
slaxemulator@13 97 package="Package"
slaxemulator@13 98 file="File"
slaxemulator@13 99 desc="Description"
slaxemulator@13 100 tags="Tags"
slaxemulator@13 101 receipt="Receipt"
slaxemulator@13 102 file_list="File list"
slaxemulator@13 103 depends="Depends"
slaxemulator@13 104 bdepends="Build depends"
slaxemulator@13 105 search="Search"
slaxemulator@13 106 cooking="cooking"
slaxemulator@13 107 stable="stable"
slaxemulator@13 108 result="Result for : $SEARCH"
slaxemulator@13 109 noresult="No package $SEARCH"
slaxemulator@13 110 deptree="Dependency tree for : $SEARCH"
slaxemulator@13 111 rdeptree="Reverse dependency tree for : $SEARCH"
slaxemulator@13 112 bdeplist="$SEARCH needs these packages to be built"
slaxemulator@13 113 rbdeplist="Packages who need $SEARCH to be built"
slaxemulator@13 114 overloading="Theses packages may overload files of "
slaxemulator@13 115 overlap="common files"
slaxemulator@13 116 charset="ISO-8859-1"
slaxemulator@13 117
slaxemulator@13 118 case "$LANG" in
slaxemulator@13 119
slaxemulator@13 120 fr) package="Paquet"
slaxemulator@13 121 receipt="Recette"
slaxemulator@13 122 depends="Dépendances"
slaxemulator@13 123 bdepends="Fabrication"
slaxemulator@13 124 search="Recherche"
slaxemulator@13 125 result="Recherche de : $SEARCH"
slaxemulator@13 126 noresult="Paquet $SEARCH introuvable"
slaxemulator@13 127 deptree="Arbre des dépendances de $SEARCH"
slaxemulator@13 128 rdeptree="Arbre inversé des dépendances de $SEARCH"
slaxemulator@13 129 bdeplist="$SEARCH a besion de ces paquets pour être fabriqué"
slaxemulator@13 130 rbdeplist="Paquets ayant besion de $SEARCH pour être fabriqués"
slaxemulator@13 131 overloading="Paquets pouvant écraser des fichiers de "
slaxemulator@13 132 overlap="Fichiers communs"
slaxemulator@13 133 file_list="Liste des fichiers"
slaxemulator@13 134 file="Fichier";;
slaxemulator@13 135
slaxemulator@13 136 de) package="Paket"
slaxemulator@13 137 depends="Abhängigkeiten"
slaxemulator@13 138 desc="Beschreibung"
slaxemulator@13 139 search="Suche"
slaxemulator@13 140 cooking="Cooking"
slaxemulator@13 141 stable="Stable"
slaxemulator@13 142 result="Resultate für : $SEARCH"
slaxemulator@13 143 noresult="Kein Paket für $SEARCH"
slaxemulator@13 144 deptree="Abhängigkeiten von: $SEARCH"
slaxemulator@13 145 rdeptree="Abhängigkeit für: $SEARCH"
slaxemulator@13 146 file_list="Datei liste"
slaxemulator@13 147 file="Datei";;
slaxemulator@13 148
slaxemulator@13 149 pt) package="Pacote"
slaxemulator@13 150 search="Buscar"
slaxemulator@13 151 cooking="cooking"
slaxemulator@13 152 stable="stable"
slaxemulator@13 153 result="Resultado para : $SEARCH"
slaxemulator@13 154 noresult="Sem resultado: $SEARCH"
slaxemulator@13 155 deptree="Árvore de dependências para: $SEARCH"
slaxemulator@13 156 rdeptree="Árvore de dependências reversa para: $SEARCH"
slaxemulator@13 157 depends="Dependências"
slaxemulator@13 158 desc="Descrição"
slaxemulator@13 159 file_list="Arquivo lista"
slaxemulator@13 160 file="Arquivo";;
slaxemulator@13 161
slaxemulator@13 162 cn) package="软件包:"
slaxemulator@13 163 cooking="å¼€å‘版"
slaxemulator@13 164 stable="稳定版"
slaxemulator@13 165 desc="æè¿°"
slaxemulator@13 166 tags="标签"
slaxemulator@13 167 depends="ä¾èµ–"
slaxemulator@13 168 file="文件"
slaxemulator@13 169 file_list="文件列表"
slaxemulator@13 170 search="Search"
slaxemulator@13 171 result="Result for : $SEARCH"
slaxemulator@13 172 noresult="No package $SEARCH"
slaxemulator@13 173 deptree="Dependency tree for : $SEARCH"
slaxemulator@13 174 rdeptree="Reverse dependency tree for : $SEARCH"
slaxemulator@13 175 charset="UTF-8";;
slaxemulator@13 176
slaxemulator@13 177 *) LANG="en";;
slaxemulator@13 178
slaxemulator@13 179 esac
slaxemulator@13 180
slaxemulator@19 181 WOK=/home/slitaz/$SLITAZ_VERSION/clean-wok
slaxemulator@13 182 PACKAGES_REPOSITORY=/home/slitaz/$SLITAZ_VERSION/packages
slaxemulator@13 183
slaxemulator@13 184 echo Content-type: text/html
slaxemulator@13 185 echo
slaxemulator@13 186
slaxemulator@13 187 # Search form
slaxemulator@13 188 search_form()
slaxemulator@13 189 {
slaxemulator@13 190 cat << _EOT_
slaxemulator@13 191
pankso@51 192 <div style="text-align: center; margin-bottom: 30px;">
pankso@50 193 <form method="post" action="search.cgi">
pankso@50 194 <div class="searchbox">
pankso@50 195 <p>
pankso@50 196 <input type="hidden" name="lang" value="$LANG" />
pankso@50 197 <input type="text" name="query" size="20" value="$SEARCH" />
pankso@50 198 <input type="submit" name="search" value="$search" />
pankso@50 199 </p>
pankso@50 200 </div>
pankso@50 201 Search for:
pankso@50 202 <select name="object">
pankso@50 203 <option value="Package">$package</option>
pankso@50 204 <option $selected_desc value="Desc">$desc</option>
pankso@50 205 <option $selected_tags value="Tags">$tags</option>
pankso@50 206 <option $selected_receipt value="Receipt">$receipt</option>
pankso@50 207 <option $selected_depends value="Depends">$depends</option>
pankso@50 208 <option $selected_build_depends value="BuildDepends">$bdepends</option>
pankso@50 209 <option $selected_file value="File">$file</option>
pankso@50 210 <option $selected_file_list value="File_list">$file_list</option>
pankso@50 211 <option $selected_overlap value="FileOverlap">$overlap</option>
pankso@50 212 </select>
pankso@50 213 in
pankso@50 214 <select name="version">
pankso@50 215 <option value="cooking">$cooking</option>
pankso@50 216 <option $selected_stable value="stable">$stable</option>
pankso@50 217 <option $selected_1 value="1.0">1.0</option>
pankso@50 218 <option $selected_2 value="2.0">2.0</option>
pankso@50 219 </select>
pankso@50 220 </form>
slaxemulator@13 221 </div>
slaxemulator@13 222 _EOT_
slaxemulator@13 223 }
slaxemulator@13 224
slaxemulator@13 225 # xHTML Header.
slaxemulator@13 226 xhtml_header()
slaxemulator@13 227 {
slaxemulator@13 228 cat << _EOF_
slaxemulator@13 229 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
slaxemulator@13 230 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
slaxemulator@13 231 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="$LANG" lang="$LANG">
slaxemulator@13 232 <head>
slaxemulator@13 233 <title>SliTaz Packages - Search $SEARCH</title>
slaxemulator@13 234 <meta http-equiv="content-type" content="text/html; charset=$charset" />
pankso@49 235 <meta name="description" content="SliTaz packages" />
pankso@49 236 <meta name="keywords" lang="en" content="tazpkg" />
slaxemulator@13 237 <meta name="robots" content="index, follow, all" />
slaxemulator@13 238 <meta name="modified" content="$DATE" />
pankso@49 239 <link rel="shortcut icon" href="favicon.ico" />
pankso@49 240 <link rel="stylesheet" type="text/css" href="slitaz.css" />
slaxemulator@13 241 </head>
slaxemulator@13 242 <body>
slaxemulator@13 243
slaxemulator@13 244 <!-- Header -->
slaxemulator@13 245 <div id="header">
pankso@49 246 <div id="logo"></div>
pankso@49 247 <div id="network">
pankso@49 248 <a href="http://www.slitaz.org/">
pankso@49 249 <img src="images/network.png" alt="network.png" /></a>
pankso@49 250 <a href="http://scn.slitaz.org/">Community</a>
pankso@49 251 <a href="http://doc.slitaz.org/">Doc</a>
pankso@49 252 <a href="http://forum.slitaz.org/">Forum</a>
pankso@49 253 <a href="http://labs.slitaz.org/issues">Bugs</a>
pankso@49 254 <a href="http://hg.slitaz.org/">Hg</a>
pankso@49 255 </div>
pankso@49 256 <h1><a href="http://pkgs.slitaz.org/">SliTaz Packages</a></h1>
slaxemulator@13 257 </div>
pankso@49 258
pankso@49 259 <!-- Block -->
pankso@49 260 <div id="block">
pankso@49 261 <!-- Navigation -->
pankso@49 262 <div id="block_nav" style="padding: 10px;">
pankso@49 263 <h4><img src="images/tazpkg.png" alt="tazpkg.png" />Tools &amp; Doc</h4>
pankso@49 264 <div class="right_box">
pankso@49 265 <ul>
pankso@49 266 <li><a href="http://doc.slitaz.org/en:cookbook:wok">Wok &amp; Tools</a></li>
pankso@49 267 <li><a href="http://doc.slitaz.org/en:cookbook:receipt">Receipts</a></li>
pankso@49 268 </ul>
pankso@49 269 </div>
pankso@49 270 <ul>
pankso@49 271 <li><a href="http://hg.slitaz.org/wok">Hg Repos</a></li>
pankso@49 272 <li><a href="http://bb.slitaz.org/">Build Bot</a></li>
pankso@49 273 <li><a href="http://labs.slitaz.org/issues">Bug Tracker</a></li>
pankso@49 274 <li><a href="http://forum.slitaz.org/">Get Support</a></li>
pankso@49 275 </ul>
pankso@49 276 </div>
pankso@49 277 <!-- Information/image -->
pankso@49 278 <div id="block_info">
pankso@51 279 <h4>$package</h4>
pankso@49 280 <p>
pankso@51 281 Search for SliTaz packages!
pankso@51 282 </p>
pankso@51 283 <p>
pankso@51 284 Any results ? Make a package request on the official
pankso@51 285 <a href="http://forum.slitaz.org/">forum</a>
pankso@49 286 </p>
pankso@49 287 </div>
pankso@49 288 </div>
pankso@49 289
slaxemulator@13 290 _EOF_
slaxemulator@13 291 }
slaxemulator@13 292
slaxemulator@13 293 # xHTML Footer.
slaxemulator@13 294 xhtml_footer()
slaxemulator@13 295 {
slaxemulator@13 296 cat << _EOT_
slaxemulator@13 297 <center>
slaxemulator@13 298 <i>$(ls $WOK/ | wc -l) packages and $(unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | wc -l) files in $SLITAZ_VERSION database</i>
slaxemulator@13 299 </center>
slaxemulator@13 300
slaxemulator@13 301 <!-- End of content -->
slaxemulator@13 302 </div>
slaxemulator@13 303
slaxemulator@13 304 <!-- Footer -->
slaxemulator@13 305 <div id="footer">
pankso@49 306 Copyright &copy; <span class="year"></span>
pankso@49 307 <a href="http://www.slitaz.org/">SliTaz</a> - Network:
pankso@49 308 <a href="http://scn.slitaz.org/">Community</a>
pankso@49 309 <a href="http://doc.slitaz.org/">Doc</a>
pankso@49 310 <a href="http://forum.slitaz.org/">Forum</a>
pankso@49 311 <a href="http://pkgs.slitaz.org/">Packages</a>
pankso@49 312 <a href="http://labs.slitaz.org/issues">Bugs</a>
pankso@49 313 <a href="http://hg.slitaz.org/">Hg</a>
pankso@49 314 <p>
pankso@49 315 SliTaz @
pankso@49 316 <a href="http://twitter.com/slitaz">Twitter</a>
pankso@49 317 <a href="http://www.facebook.com/slitaz">Facebook</a>
pankso@49 318 <a href="http://distrowatch.com/slitaz">Distrowatch</a>
pankso@49 319 <a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a>
pankso@49 320 <a href="http://flattr.com/profile/slitaz">Flattr</a>
pankso@49 321 </p>
slaxemulator@13 322 </div>
slaxemulator@13 323
slaxemulator@13 324 </body>
slaxemulator@13 325 </html>
slaxemulator@13 326 _EOT_
slaxemulator@13 327 }
slaxemulator@13 328
slaxemulator@13 329 installed_size()
slaxemulator@13 330 {
slaxemulator@13 331 [ $VERBOSE -gt 0 ] &&
slaxemulator@13 332 grep -A 3 "^$1\$" /home/slitaz/$SLITAZ_VERSION/packages/packages.txt | \
slaxemulator@13 333 grep installed | sed 's/.*(\(.*\) installed.*/(\1) /'
slaxemulator@13 334 }
slaxemulator@13 335
slaxemulator@13 336 package_entry()
slaxemulator@13 337 {
slaxemulator@13 338 if [ -s "$(dirname $0)/$SLITAZ_VERSION/$CATEGORY.html" ]; then
slaxemulator@13 339 cat << _EOT_
slaxemulator@13 340 <a href="$SLITAZ_VERSION/$CATEGORY.html#$PACKAGE">$PACKAGE</a> $(installed_size $PACKAGE): $SHORT_DESC
slaxemulator@13 341 _EOT_
slaxemulator@13 342 else
slaxemulator@13 343 cat << _EOT_
slaxemulator@13 344 <a href="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg">$PACKAGE</a> $(installed_size $PACKAGE): $SHORT_DESC
slaxemulator@13 345 _EOT_
slaxemulator@13 346 fi
slaxemulator@13 347 }
slaxemulator@13 348
slaxemulator@13 349 # recursive dependencies scan
slaxemulator@13 350 dep_scan()
slaxemulator@13 351 {
slaxemulator@13 352 for i in $1; do
slaxemulator@13 353 case " $ALL_DEPS " in
slaxemulator@13 354 *\ $i\ *) continue;;
slaxemulator@13 355 esac
slaxemulator@13 356 ALL_DEPS="$ALL_DEPS $i"
slaxemulator@13 357 if [ -n "$2" ]; then
slaxemulator@13 358 echo -n "$2"
slaxemulator@13 359 (
slaxemulator@13 360 . $WOK/$i/receipt
slaxemulator@13 361 package_entry
slaxemulator@13 362 )
slaxemulator@13 363 fi
slaxemulator@13 364 [ -f $WOK/$i/receipt ] || continue
slaxemulator@13 365 DEPENDS=""
slaxemulator@13 366 . $WOK/$i/receipt
slaxemulator@13 367 [ -n "$DEPENDS" ] && dep_scan "$DEPENDS" "$2 "
slaxemulator@13 368 done
slaxemulator@13 369 }
slaxemulator@13 370
slaxemulator@13 371 # recursive reverse dependencies scan
slaxemulator@13 372 rdep_scan()
slaxemulator@13 373 {
slaxemulator@13 374 SEARCH=$1
slaxemulator@13 375 case "$SEARCH" in
slaxemulator@13 376 glibc-base|gcc-lib-base) cat <<EOT
slaxemulator@13 377 glibc-base and gcc-lib-base are implicit dependencies,
slaxemulator@13 378 <b>every</b> package is supposed to depend on them.
slaxemulator@13 379 EOT
slaxemulator@13 380 return;;
slaxemulator@13 381 esac
slaxemulator@13 382 for i in $WOK/* ; do
slaxemulator@13 383 DEPENDS=""
slaxemulator@13 384 . $i/receipt
slaxemulator@13 385 echo "$(basename $i) $(echo $DEPENDS)"
slaxemulator@13 386 done | awk -v search=$SEARCH '
slaxemulator@13 387 function show_deps(deps, all_deps, pkg, space)
slaxemulator@13 388 {
slaxemulator@13 389 if (all_deps[pkg] == 1) return
slaxemulator@13 390 all_deps[pkg] = 1
slaxemulator@13 391 if (space != "") printf "%s%s\n",space,pkg
slaxemulator@13 392 for (i = 1; i <= split(deps[pkg], mydeps, " "); i++) {
slaxemulator@13 393 show_deps(deps, all_deps, mydeps[i],"////" space)
slaxemulator@13 394 }
slaxemulator@13 395 }
slaxemulator@13 396
slaxemulator@13 397 {
slaxemulator@13 398 all_deps[$1] = 0
slaxemulator@13 399 for (i = 2; i <= NF; i++)
slaxemulator@13 400 deps[$i] = deps[$i] " " $1
slaxemulator@13 401 }
slaxemulator@13 402
slaxemulator@13 403 END {
slaxemulator@13 404 show_deps(deps, all_deps, search, "")
slaxemulator@13 405 }
slaxemulator@13 406 ' | while read pkg; do
slaxemulator@13 407 . $WOK/${pkg##*/}/receipt
slaxemulator@13 408 cat << _EOT_
slaxemulator@13 409 $(echo ${pkg%/*} | sed 's|/| |g') $(package_entry)
slaxemulator@13 410 _EOT_
slaxemulator@13 411 done
slaxemulator@13 412 }
slaxemulator@13 413
slaxemulator@13 414 # Check package exists
slaxemulator@13 415 package_exist()
slaxemulator@13 416 {
slaxemulator@13 417 [ -f $WOK/$1/receipt ] && return 0
slaxemulator@13 418 cat << _EOT_
slaxemulator@13 419
slaxemulator@13 420 <h3>$noresult</h3>
pankso@49 421 <pre>
slaxemulator@13 422 _EOT_
slaxemulator@13 423 return 1
slaxemulator@13 424 }
slaxemulator@13 425
slaxemulator@13 426 # Display < > &
slaxemulator@13 427 htmlize()
slaxemulator@13 428 {
slaxemulator@13 429 sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g'
slaxemulator@13 430 }
slaxemulator@13 431
slaxemulator@13 432 display_packages_and_files()
slaxemulator@13 433 {
slaxemulator@13 434 last=""
slaxemulator@13 435 while read pkg file; do
slaxemulator@13 436 pkg=${pkg%:}
slaxemulator@13 437 if [ "$pkg" != "$last" ]; then
slaxemulator@13 438 . $WOK/$pkg/receipt
slaxemulator@13 439
slaxemulator@13 440 package_entry
slaxemulator@13 441 last=$pkg
slaxemulator@13 442 fi
slaxemulator@13 443 echo " $file"
slaxemulator@13 444 done
slaxemulator@13 445 }
slaxemulator@13 446
slaxemulator@13 447 # Display search form and result if requested.
slaxemulator@13 448 if [ "$REQUEST_METHOD" != "POST" ]; then
slaxemulator@13 449 xhtml_header
slaxemulator@13 450 cat << _EOT_
slaxemulator@13 451
slaxemulator@13 452 <!-- Content -->
slaxemulator@13 453 <div id="content">
slaxemulator@13 454
slaxemulator@13 455 <h2>$search</h2>
slaxemulator@13 456 _EOT_
slaxemulator@13 457 search_form
slaxemulator@13 458 xhtml_footer
slaxemulator@13 459 else
slaxemulator@13 460 xhtml_header
slaxemulator@13 461 cat << _EOT_
slaxemulator@13 462
slaxemulator@13 463 <!-- Content -->
slaxemulator@13 464 <div id="content">
slaxemulator@13 465
slaxemulator@13 466 <h2>$search</h2>
slaxemulator@13 467 _EOT_
slaxemulator@13 468 search_form
slaxemulator@13 469 if [ "$OBJECT" = "Depends" ]; then
slaxemulator@13 470 if package_exist $SEARCH ; then
slaxemulator@13 471 cat << _EOT_
slaxemulator@13 472
slaxemulator@13 473 <h3>$deptree</h3>
pankso@49 474 <pre>
slaxemulator@13 475 _EOT_
slaxemulator@13 476 ALL_DEPS=""
slaxemulator@13 477 dep_scan $SEARCH ""
slaxemulator@13 478 SUGGESTED=""
slaxemulator@13 479 . $WOK/$SEARCH/receipt
slaxemulator@13 480 if [ -n "$SUGGESTED" ]; then
slaxemulator@13 481 cat << _EOT_
slaxemulator@13 482 </pre>
slaxemulator@13 483
slaxemulator@13 484 <h3>$deptree (SUGGESTED)</h3>
pankso@49 485 <pre>
slaxemulator@13 486 _EOT_
slaxemulator@13 487 ALL_DEPS=""
slaxemulator@13 488 dep_scan "$SUGGESTED" " "
slaxemulator@13 489 fi
slaxemulator@13 490 cat << _EOT_
slaxemulator@13 491 </pre>
slaxemulator@13 492
slaxemulator@13 493 <h3>$rdeptree</h3>
pankso@49 494 <pre>
slaxemulator@13 495 _EOT_
slaxemulator@13 496 ALL_DEPS=""
slaxemulator@13 497 rdep_scan $SEARCH
slaxemulator@13 498 cat << _EOT_
slaxemulator@13 499 </pre>
slaxemulator@13 500 _EOT_
slaxemulator@13 501 fi
slaxemulator@13 502 elif [ "$OBJECT" = "BuildDepends" ]; then
slaxemulator@13 503 if package_exist $SEARCH ; then
slaxemulator@13 504 cat << _EOT_
slaxemulator@13 505
slaxemulator@13 506 <h3>$bdeplist</h3>
pankso@49 507 <pre>
slaxemulator@13 508 _EOT_
slaxemulator@13 509 BUILD_DEPENDS=""
slaxemulator@13 510 . $WOK/$SEARCH/receipt
slaxemulator@13 511 [ -n "$BUILD_DEPENDS" ] && for dep in $BUILD_DEPENDS ; do
slaxemulator@13 512 if [ ! -s $WOK/$dep/receipt ]; then
slaxemulator@13 513 cat << _EOT_
slaxemulator@13 514 $dep: not found !
slaxemulator@13 515 _EOT_
slaxemulator@13 516 continue
slaxemulator@13 517 fi
slaxemulator@13 518 . $WOK/$dep/receipt
slaxemulator@13 519 package_entry
slaxemulator@13 520 done
slaxemulator@13 521 cat << _EOT_
slaxemulator@13 522 </pre>
slaxemulator@13 523
slaxemulator@13 524 <h3>$rbdeplist</h3>
pankso@49 525 <pre>
slaxemulator@13 526 _EOT_
slaxemulator@13 527 for dep in $(grep -l $SEARCH $WOK/*/receipt); do
slaxemulator@13 528 BUILD_DEPENDS=""
slaxemulator@13 529 . $dep
slaxemulator@13 530 echo " $BUILD_DEPENDS " | grep -q " $SEARCH " &&
slaxemulator@13 531 package_entry
slaxemulator@13 532 done
slaxemulator@13 533 cat << _EOT_
slaxemulator@13 534 </pre>
slaxemulator@13 535 _EOT_
slaxemulator@13 536 fi
slaxemulator@13 537 elif [ "$OBJECT" = "FileOverlap" ]; then
slaxemulator@13 538 if package_exist $SEARCH ; then
slaxemulator@13 539 cat << _EOT_
slaxemulator@13 540
slaxemulator@13 541 <h3>$overloading $SEARCH</h3>
pankso@49 542 <pre>
slaxemulator@13 543 _EOT_
slaxemulator@13 544 ( unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep ^$SEARCH: ;
slaxemulator@13 545 unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep -v ^$SEARCH: ) | awk '
slaxemulator@13 546 BEGIN { pkg=""; last="x" }
slaxemulator@13 547 {
slaxemulator@13 548 if ($2 == "") next
slaxemulator@13 549 if (index($2,last) == 1 && substr($2,1+length(last),1) == "/")
slaxemulator@13 550 delete file[last]
slaxemulator@13 551 last=$2
slaxemulator@13 552 if (pkg == "") pkg=$1
slaxemulator@13 553 if ($1 == pkg) file[$2]=$1
slaxemulator@13 554 else if (file[$2] == pkg) print
slaxemulator@13 555 }
slaxemulator@13 556 ' | display_packages_and_files
slaxemulator@13 557 cat << _EOT_
slaxemulator@13 558 </pre>
slaxemulator@13 559 _EOT_
slaxemulator@13 560 fi
slaxemulator@13 561 elif [ "$OBJECT" = "File" ]; then
slaxemulator@13 562 cat << _EOT_
slaxemulator@13 563
slaxemulator@13 564 <h3>$result</h3>
pankso@49 565 <pre>
slaxemulator@13 566 _EOT_
slaxemulator@13 567 last=""
slaxemulator@13 568 unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \
slaxemulator@13 569 | grep $SEARCH | while read pkg file; do
slaxemulator@13 570 echo "$file" | grep -q $SEARCH || continue
slaxemulator@13 571 if [ "$last" != "${pkg%:}" ]; then
slaxemulator@13 572 last=${pkg%:}
slaxemulator@13 573 (
slaxemulator@13 574 . $WOK/$last/receipt
slaxemulator@13 575 cat << _EOT_
slaxemulator@13 576
slaxemulator@13 577 <i>$(package_entry)</i>
slaxemulator@13 578 _EOT_
slaxemulator@13 579 )
slaxemulator@13 580 fi
slaxemulator@13 581 echo " $file"
slaxemulator@13 582 done
slaxemulator@13 583 elif [ "$OBJECT" = "File_list" ]; then
slaxemulator@13 584 package_exist $SEARCH && cat << _EOT_
slaxemulator@13 585
slaxemulator@13 586 <h3>$result</h3>
pankso@49 587 <pre>
slaxemulator@13 588 _EOT_
slaxemulator@13 589 last=""
slaxemulator@13 590 unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \
slaxemulator@13 591 | grep ^$SEARCH: | sed 's/.*: / /' | sort
slaxemulator@13 592 elif [ "$OBJECT" = "Desc" ]; then
slaxemulator@13 593 if [ -f $WOK/$SEARCH/description.txt ]; then
slaxemulator@13 594 cat << _EOT_
slaxemulator@13 595
slaxemulator@13 596 <h3>$result</h3>
pankso@49 597 <pre>
slaxemulator@13 598 <pre>
slaxemulator@13 599 $(htmlize < $WOK/$SEARCH/description.txt)
slaxemulator@13 600 </pre>
slaxemulator@13 601 _EOT_
slaxemulator@13 602 else
slaxemulator@13 603 cat << _EOT_
slaxemulator@13 604
slaxemulator@13 605 <h3>$result</h3>
pankso@49 606 <pre>
slaxemulator@13 607 _EOT_
slaxemulator@13 608 last=""
slaxemulator@13 609 grep -i $SEARCH $PACKAGES_REPOSITORY/packages.desc | \
slaxemulator@13 610 sort | while read pkg extras ; do
slaxemulator@13 611 . $WOK/$pkg/receipt
slaxemulator@13 612 package_entry
slaxemulator@13 613 done
slaxemulator@13 614 fi
slaxemulator@13 615 elif [ "$OBJECT" = "Tags" ]; then
slaxemulator@13 616 cat << _EOT_
slaxemulator@13 617
slaxemulator@13 618 <h3>$result</h3>
pankso@49 619 <pre>
slaxemulator@13 620 _EOT_
slaxemulator@13 621 last=""
slaxemulator@13 622 grep ^TAGS= $WOK/*/receipt | grep -i $SEARCH | \
slaxemulator@13 623 sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do
slaxemulator@13 624 . $WOK/$pkg/receipt
slaxemulator@13 625 package_entry
slaxemulator@13 626 done
slaxemulator@13 627 elif [ "$OBJECT" = "Receipt" ]; then
slaxemulator@13 628 package_exist $SEARCH && cat << _EOT_
slaxemulator@13 629
slaxemulator@13 630 <h3>$result</h3>
pankso@49 631 <pre>
slaxemulator@13 632 <pre>
slaxemulator@13 633 $(if [ -f $WOK/$SEARCH/taz/*/receipt ]; then
slaxemulator@13 634 cat $WOK/$SEARCH/taz/*/receipt
slaxemulator@13 635 else
slaxemulator@13 636 cat $WOK/$SEARCH/receipt
slaxemulator@13 637 fi | htmlize)
slaxemulator@13 638 </pre>
slaxemulator@13 639 _EOT_
slaxemulator@13 640 else
slaxemulator@13 641 cat << _EOT_
slaxemulator@13 642
slaxemulator@13 643 <h3>$result</h3>
pankso@49 644 <pre>
slaxemulator@13 645 _EOT_
slaxemulator@13 646 for pkg in `ls $WOK/ | grep $SEARCH`
slaxemulator@13 647 do
slaxemulator@13 648 . $WOK/$pkg/receipt
slaxemulator@13 649 DESC=" <a href=\"?desc=$pkg\">description</a>"
slaxemulator@13 650 [ -f $WOK/$pkg/description.txt ] || DESC=""
slaxemulator@13 651 cat << _EOT_
slaxemulator@13 652 $(package_entry)$DESC
slaxemulator@13 653 _EOT_
slaxemulator@13 654 done
slaxemulator@13 655 equiv=$PACKAGES_REPOSITORY/packages.equiv
slaxemulator@13 656 vpkgs="$(cat $equiv | cut -d= -f1 | grep $SEARCH)"
slaxemulator@13 657 for vpkg in $vpkgs ; do
slaxemulator@13 658 cat << _EOT_
slaxemulator@13 659 </pre>
slaxemulator@13 660
slaxemulator@13 661 <h3>$result (package providing $vpkg)</h3>
pankso@49 662 <pre>
slaxemulator@13 663 _EOT_
slaxemulator@13 664 for pkg in $(grep $vpkg= $equiv | sed "s/$vpkg=//"); do
slaxemulator@13 665 . $WOK/${pkg#*:}/receipt
slaxemulator@13 666 package_entry
slaxemulator@13 667 done
slaxemulator@13 668 done
slaxemulator@13 669 fi
slaxemulator@13 670 cat << _EOT_
slaxemulator@13 671 </pre>
slaxemulator@13 672 _EOT_
slaxemulator@13 673 xhtml_footer
slaxemulator@13 674 fi
slaxemulator@13 675
slaxemulator@13 676 exit 0