slitaz-dev-tools rev 13

Add tazpkg-web.
author Christopher Rogers <slaxemulator@gmail.com>
date Thu Feb 24 04:33:56 2011 +0000 (2011-02-24)
parents 3ad78186f531
children d9f1a561b634
files tazpkg-web/README tazpkg-web/html/footer.html tazpkg-web/html/header.html tazpkg-web/html/home.html tazpkg-web/html/menu.html tazpkg-web/search.cgi tazpkg-web/style/favicon.ico tazpkg-web/style/pics/tazpkg.png tazpkg-web/style/pics/website/header-img.png tazpkg-web/style/pics/website/logo.png tazpkg-web/style/pics/website/network.png tazpkg-web/style/pics/website/text.png tazpkg-web/style/pics/website/xhtml10.png tazpkg-web/style/slitaz.css tazpkg-web/tazpkg-web tazpkg-web/tazpkg-web.conf tazpkg-web/xml/rss-header.xml
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/tazpkg-web/README	Thu Feb 24 04:33:56 2011 +0000
     1.3 @@ -0,0 +1,24 @@
     1.4 +Tazpkg-web - SliTaz Packages Web interface
     1.5 +===============================================================================
     1.6 +
     1.7 +
     1.8 +Tazpkg-web package provides the files, scripts and search engine used for the 
     1.9 +SliTaz packages web interface. It doesn't depend on the Tazpkg package manager 
    1.10 +or Tazwok, but needs a wok with a receipt and a packages (*.tazpkg) repository 
    1.11 +to scan and build the static xHTML pages. Here is a brief overview of the files
    1.12 +provided:
    1.13 +
    1.14 +
    1.15 + * html/           : Split xHTML template used to generate the full pages
    1.16 + * style/          : CSS stylesheets, pics and favicon
    1.17 + * xml/            : RSS template (will be used when merged with tazrss)
    1.18 + * search.cgi      : CGI search engine using awk, grep, etc (all xHTML hardcoded)
    1.19 + * tazpkg-web      : Utility which generates the categories and index pages
    1.20 + * tazpkg-web.conf : Tazpkg-web utility configuration file
    1.21 +
    1.22 +
    1.23 +Online : http://pkgs.slitaz.org/
    1.24 +
    1.25 +
    1.26 +===============================================================================
    1.27 +
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/tazpkg-web/html/footer.html	Thu Feb 24 04:33:56 2011 +0000
     2.3 @@ -0,0 +1,33 @@
     2.4 +<!-- End of content -->
     2.5 +</div>
     2.6 +
     2.7 +<!-- Footer -->
     2.8 +<div id="footer">
     2.9 +	<div class="right_box">
    2.10 +	<h4>SliTaz Network</h4>
    2.11 +		<ul>
    2.12 +			<li><a href="http://www.slitaz.org/">Main Website</a></li>
    2.13 +			<li><a href="http://doc.slitaz.org/">Documentation</a></li>
    2.14 +			<li><a href="http://forum.slitaz.org/">Support Forum</a></li>
    2.15 +			<li><a href="http://scn.slitaz.org/">Community Network</a></li>
    2.16 +			<li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li>
    2.17 +			<li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li>
    2.18 +		</ul>
    2.19 +	</div>
    2.20 +	<h4>SliTaz Packages</h4>
    2.21 +	<ul>
    2.22 +		<li><a href="#header">Top of the page</a></li>
    2.23 +		<li>Copyright &copy; <span class="year"></span>
    2.24 +			<a href="http://www.slitaz.org/">SliTaz</a></li>
    2.25 +		<li><a href="http://www.slitaz.org/en/about/">About the project</a></li>
    2.26 +		<li><a href="http://pkgs.slitaz.org/search.cgi">Search packages</a></li>
    2.27 +		<li>Page modified the _DATE_</li>
    2.28 +		<li><a href="http://validator.w3.org/check?uri=referer"><img
    2.29 +		src="http://pkgs.slitaz.org/pics/website/xhtml10.png" 
    2.30 +		title="Valid XHTML 1.0" alt="Valid XHTML 1.0"
    2.31 +		style="width: 80px; height: 15px; vertical-align: middle;" /></a></li>
    2.32 +	</ul>
    2.33 +</div>
    2.34 +
    2.35 +</body>
    2.36 +</html>
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/tazpkg-web/html/header.html	Thu Feb 24 04:33:56 2011 +0000
     3.3 @@ -0,0 +1,34 @@
     3.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     3.5 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
     3.7 +<head>
     3.8 +	<title>SliTaz _RELEASE_ Packages - _PAGE_</title>
     3.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    3.10 +	<meta name="description" content="Au sujet de SliTaz GNU/Linux mini système d'exploitation" />
    3.11 +	<meta name="keywords" lang="fr" content="Système, libre, gnu, linux, opensource, livecd" />
    3.12 +	<meta name="robots" content="index, follow, all" />
    3.13 +	<meta name="revisit-after" content="7 days" />
    3.14 +	<meta name="expires" content="never" />
    3.15 +	<meta name="modified" content="_DATE_" />
    3.16 +	<meta name="author" content="SliTaz Contributors"/>
    3.17 +	<meta name="generator" content="ash, grep, sed and cat"/>
    3.18 +	<meta name="publisher" content="www.slitaz.org" />
    3.19 +	<link rel="shortcut icon" href="http://pkgs.slitaz.org/favicon.ico" />
    3.20 +	<link rel="stylesheet"  type="text/css" href="http://pkgs.slitaz.org/slitaz.css" />
    3.21 +	<link rel="alternate" type="application/rss+xml" title="SliTaz Stable Packages" href="/rss/stable.xml" />
    3.22 +	<link rel="alternate" type="application/rss+xml" title="SliTaz Cooking Packages" href="/rss/cooking.xml" />
    3.23 +</head>
    3.24 +<body>
    3.25 +
    3.26 +<!-- Header -->
    3.27 +<div id="header">
    3.28 +    <!-- Logo -->
    3.29 +	<a href="http://pkgs.slitaz.org/"><img id="logo"
    3.30 +		src="/pics/website/logo.png" 
    3.31 +		title="pkgs.slitaz.org" alt="pkgs.slitaz.org" /></a>
    3.32 +	<p id="titre">#!/Packages</p>
    3.33 +</div>
    3.34 +
    3.35 +<!-- Content -->
    3.36 +<div id="content-full">
    3.37 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/tazpkg-web/html/home.html	Thu Feb 24 04:33:56 2011 +0000
     4.3 @@ -0,0 +1,60 @@
     4.4 +<!-- Block begin -->
     4.5 +<div class="block">
     4.6 +	<!-- Nav block begin -->
     4.7 +	<div id="block_nav" style="height: 220px;">
     4.8 +		<h3><img src="/pics/website/network.png" alt=".png" />Tools</h3>
     4.9 +		<ul>
    4.10 +			<li><a href="http://hg.slitaz.org/wok">Hg Repos</a></li>
    4.11 +			<li><a href="http://bb.slitaz.org/">Build Bot</a></li>
    4.12 +			<li><a href="http://labs.slitaz.org/issues">Bug Tracker</a></li>
    4.13 +		</ul>
    4.14 +		<h3><img src="/pics/website/text.png" alt=".png" />Documentation</h3>
    4.15 +		<ul>
    4.16 +			<li><a href="http://doc.slitaz.org/en:cookbook:wok">Wok &amp; Tools</a></li>
    4.17 +			<li><a href="http://doc.slitaz.org/en:cookbook:receipt">Receipts</a></li>
    4.18 +		</ul>
    4.19 +	<!-- Nav block end -->
    4.20 +	</div>
    4.21 +	<!-- Top block begin -->
    4.22 +	<div id="block_top" style="height: 220px;">
    4.23 +		<h1>Packages</h1>
    4.24 +		<p>
    4.25 +			Welcome to the SliTaz packages web interface. The site allows
    4.26 +			you to search and view all of the software packages available
    4.27 +			on the SliTaz mirror. The pages are automatically updated daily
    4.28 +			via a cron job.
    4.29 +		</p>
    4.30 +		<p>
    4.31 +			Browse the packages web interface: <a href="stable/">Stable packages</a>
    4.32 +			| <a href="cooking/">Cooking packages</a>
    4.33 +		</p>
    4.34 +	<!-- Top block end -->
    4.35 +	</div>
    4.36 +<!-- Block end -->
    4.37 +</div>
    4.38 +
    4.39 +<div class="pkgs-search">
    4.40 +	<form method="post" action="http://pkgs.slitaz.org/search.cgi">
    4.41 +		<p>
    4.42 +			<input type="text" name="query" size="30" />
    4.43 +			<input type="submit" name="search" value="Search" />
    4.44 +		</p>
    4.45 +		<select name="object">
    4.46 +			<option>Package</option>
    4.47 +			<option>Desc</option>
    4.48 +			<option>Tags</option>
    4.49 +			<option>Receipt</option>
    4.50 +			<option>Depends</option>
    4.51 +			<option>BuildDepends</option>
    4.52 +			<option>File</option>
    4.53 +			<option>File_list</option>
    4.54 +			<option>FileOverlap</option>
    4.55 +		</select>
    4.56 +		<select name="version">
    4.57 +			<option>stable</option>
    4.58 +			<option>cooking</option>
    4.59 +			<option>2.0</option>
    4.60 +			<option>1.0</option>
    4.61 +		</select>
    4.62 +	</form>
    4.63 +</div>
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/tazpkg-web/html/menu.html	Thu Feb 24 04:33:56 2011 +0000
     5.3 @@ -0,0 +1,47 @@
     5.4 +<!-- Block begin -->
     5.5 +<div class="block">
     5.6 +	<!-- Nav block begin -->
     5.7 +	<div id="block_nav" style="height: 220px;">
     5.8 +		<h3><img src="/pics/tazpkg.png" alt=".png" />Categories</h3>
     5.9 +		<div class="right_box">
    5.10 +			<ul>
    5.11 +				<li><a href="development.html">Development</a></li>
    5.12 +				<li><a href="system-tools.html">System-tools</a></li>
    5.13 +				<li><a href="security.html">Security</a></li>
    5.14 +				<li><a href="misc.html">Misc</a></li>
    5.15 +				<li><a href="meta.html">Meta packages</a></li>
    5.16 +				<li><a href="non-free.html">Non free</a></li>
    5.17 +			</ul>
    5.18 +		</div>
    5.19 +		<ul>
    5.20 +			<li><a href="base-system.html">Base-system</a></li>
    5.21 +			<li><a href="x-window.html">X-window</a></li>
    5.22 +			<li><a href="utilities.html">Utilities</a></li>
    5.23 +			<li><a href="network.html">Network</a></li>
    5.24 +			<li><a href="games.html">Games</a></li>
    5.25 +			<li><a href="graphics.html">Graphics</a></li>
    5.26 +			<li><a href="multimedia.html">Multimedia</a></li>
    5.27 +			<li><a href="office.html">Office</a></li>
    5.28 +		</ul>
    5.29 +	<!-- Nav block end -->
    5.30 +	</div>
    5.31 +	<!-- Top block begin -->
    5.32 +	<div id="block_top" style="height: 220px;">
    5.33 +		<h1>Packages _RELEASE_</h1>
    5.34 +		<p>
    5.35 +			The SliTaz packages web interface allows you to search and view 
    5.36 +			all of the software packages available for SliTaz. The pages are
    5.37 +			updated daily via a cron job.
    5.38 +		</p>
    5.39 +		<p>
    5.40 +			Documentation: 
    5.41 +			<a href="http://doc.slitaz.org/en:handbook:packages">Package manager</a>
    5.42 +		</p>
    5.43 +		<p>
    5.44 +			Browse the packages web interface: <a href="../stable/">Stable packages</a>
    5.45 +			| <a href="../cooking/">Cooking packages</a>
    5.46 +		</p>
    5.47 +	<!-- Top block end -->
    5.48 +	</div>
    5.49 +<!-- Block end -->
    5.50 +</div>
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/tazpkg-web/search.cgi	Thu Feb 24 04:33:56 2011 +0000
     6.3 @@ -0,0 +1,647 @@
     6.4 +#!/bin/sh
     6.5 +# Tiny CGI search engine for SliTaz packages on http://pkgs.slitaz.org/
     6.6 +# Christophe Lincoln <pankso@slitaz.org>
     6.7 +#
     6.8 +
     6.9 +read QUERY_STRING
    6.10 +for i in $(echo $QUERY_STRING | sed 's/&/ /g'); do
    6.11 +	eval $i
    6.12 +done
    6.13 +LANG=$lang
    6.14 +SEARCH=$query
    6.15 +SLITAZ_VERSION=$version
    6.16 +OBJECT=$object
    6.17 +DATE=`date +%Y-%m-%d\ \%H:%M:%S`
    6.18 +VERSION=cooking
    6.19 +if [ "$REQUEST_METHOD" = "GET" ]; then
    6.20 +	SEARCH=""
    6.21 +	VERBOSE=0
    6.22 +	for i in $(echo $REQUEST_URI | sed 's/[?&]/ /g'); do
    6.23 +		SLITAZ_VERSION=cooking
    6.24 +		case "$(echo $i | tr [A-Z] [a-z])" in
    6.25 +		search=*)
    6.26 +			SEARCH=${i#*=};;
    6.27 +		object=*)
    6.28 +			OBJECT=${i#*=};;
    6.29 +		verbose=*)
    6.30 +			VERBOSE=${i#*=};;
    6.31 +		lang=*)
    6.32 +			LANG=${i#*=};;
    6.33 +		file=*)
    6.34 +			SEARCH=${i#*=}
    6.35 +			OBJECT=File;;
    6.36 +		desc=*)
    6.37 +			SEARCH=${i#*=}
    6.38 +			OBJECT=Desc;;
    6.39 +		tags=*)
    6.40 +			SEARCH=${i#*=}
    6.41 +			OBJECT=Tags;;
    6.42 +		receipt=*)
    6.43 +			SEARCH=${i#*=}
    6.44 +			OBJECT=Receipt;;
    6.45 +		filelist=*)
    6.46 +			SEARCH=${i#*=}
    6.47 +			OBJECT=File_list;;
    6.48 +		package=*)
    6.49 +			SEARCH=${i#*=}
    6.50 +			OBJECT=Package;;
    6.51 +		depends=*)
    6.52 +			SEARCH=${i#*=}
    6.53 +			OBJECT=Depends;;
    6.54 +		builddepends=*)
    6.55 +			SEARCH=${i#*=}
    6.56 +			OBJECT=BuildDepends;;
    6.57 +		fileoverlap=*)
    6.58 +			SEARCH=${i#*=}
    6.59 +			OBJECT=FileOverlap;;
    6.60 +		version=s*|version=3*)
    6.61 +			SLITAZ_VERSION=stable;;
    6.62 +		version=[1-9]*)
    6.63 +			i=${version%%.*}
    6.64 +			SLITAZ_VERSION=${i#*=}.0;;
    6.65 +		esac
    6.66 +	done
    6.67 +	[ -n "$SEARCH" ] && REQUEST_METHOD="POST"
    6.68 +fi
    6.69 +
    6.70 +case "$OBJECT" in
    6.71 +File)	 	selected_file="selected";;
    6.72 +Desc)	 	selected_desc="selected";;
    6.73 +Tags)	 	selected_tags="selected";;
    6.74 +Receipt) 	selected_receipt="selected";;
    6.75 +File_list) 	selected_file_list="selected";;
    6.76 +Depends)	selected_depends="selected";;
    6.77 +BuildDepends)	selected_build_depends="selected";;
    6.78 +FileOverlap)	selected_overlap="selected";;
    6.79 +esac
    6.80 +
    6.81 +case "$SLITAZ_VERSION" in
    6.82 +1.0)	 	selected_1="selected";;
    6.83 +2.0)	 	selected_2="selected";;
    6.84 +stable)		selected_stable="selected";;
    6.85 +esac
    6.86 +
    6.87 +# unescape query
    6.88 +SEARCH="$(echo $SEARCH | sed 's/%2B/+/g' | sed 's/%3A/:/g' | sed 's|%2F|/|g')"
    6.89 +
    6.90 +if [ -z "$LANG" ]; then
    6.91 +	for i in $(echo $HTTP_ACCEPT_LANGUAGE | sed 's/[,;]/ /g'); do
    6.92 +		case "$i" in
    6.93 +		fr|de|pt|cn)
    6.94 +			LANG=$i
    6.95 +			break;;
    6.96 +		esac
    6.97 +	done
    6.98 +fi
    6.99 +
   6.100 +package="Package"
   6.101 +file="File"
   6.102 +desc="Description"
   6.103 +tags="Tags"
   6.104 +receipt="Receipt"
   6.105 +file_list="File list"
   6.106 +depends="Depends"
   6.107 +bdepends="Build depends"
   6.108 +search="Search"
   6.109 +cooking="cooking"
   6.110 +stable="stable"
   6.111 +result="Result for : $SEARCH"
   6.112 +noresult="No package $SEARCH"
   6.113 +deptree="Dependency tree for : $SEARCH"
   6.114 +rdeptree="Reverse dependency tree for : $SEARCH"
   6.115 +bdeplist="$SEARCH needs these packages to be built"
   6.116 +rbdeplist="Packages who need $SEARCH to be built"
   6.117 +overloading="Theses packages may overload files of "
   6.118 +overlap="common files"
   6.119 +charset="ISO-8859-1"
   6.120 +
   6.121 +case "$LANG" in
   6.122 +
   6.123 +fr)	package="Paquet"
   6.124 +	receipt="Recette"
   6.125 +	depends="Dépendances"
   6.126 +	bdepends="Fabrication"
   6.127 +	search="Recherche"
   6.128 +	result="Recherche de : $SEARCH"
   6.129 +	noresult="Paquet $SEARCH introuvable"
   6.130 +	deptree="Arbre des dépendances de $SEARCH"
   6.131 +	rdeptree="Arbre inversé des dépendances de $SEARCH"
   6.132 +	bdeplist="$SEARCH a besion de ces paquets pour être fabriqué"
   6.133 +	rbdeplist="Paquets ayant besion de $SEARCH pour être fabriqués"
   6.134 +	overloading="Paquets pouvant écraser des fichiers de "
   6.135 +	overlap="Fichiers communs"
   6.136 +	file_list="Liste des fichiers"
   6.137 +	file="Fichier";;
   6.138 +
   6.139 +de)	package="Paket"
   6.140 +	depends="Abhängigkeiten"
   6.141 +	desc="Beschreibung"
   6.142 +	search="Suche"
   6.143 +	cooking="Cooking"
   6.144 +	stable="Stable"
   6.145 +	result="Resultate für : $SEARCH"
   6.146 +	noresult="Kein Paket für $SEARCH"
   6.147 +	deptree="Abhängigkeiten von: $SEARCH"
   6.148 +	rdeptree="Abhängigkeit für: $SEARCH"
   6.149 +	file_list="Datei liste"
   6.150 +	file="Datei";;
   6.151 +
   6.152 +pt)	package="Pacote"
   6.153 +	search="Buscar"
   6.154 +	cooking="cooking"
   6.155 +	stable="stable"
   6.156 +	result="Resultado para : $SEARCH"
   6.157 +	noresult="Sem resultado: $SEARCH"
   6.158 +	deptree="Árvore de dependências para: $SEARCH"
   6.159 +	rdeptree="Árvore de dependências reversa para: $SEARCH"
   6.160 +	depends="Dependências"
   6.161 +	desc="Descrição"
   6.162 +	file_list="Arquivo lista"
   6.163 +	file="Arquivo";;
   6.164 +
   6.165 +cn)	package="软件包:"
   6.166 +	cooking="å¼€å‘版"
   6.167 +	stable="稳定版"
   6.168 +	desc="æè¿°"
   6.169 +	tags="标签"
   6.170 +	depends="ä¾èµ–"
   6.171 +	file="文件"
   6.172 +	file_list="文件列表"
   6.173 +	search="Search"
   6.174 +	result="Result for : $SEARCH"
   6.175 +	noresult="No package $SEARCH"
   6.176 +	deptree="Dependency tree for : $SEARCH"
   6.177 +	rdeptree="Reverse dependency tree for : $SEARCH"
   6.178 +	charset="UTF-8";;
   6.179 +
   6.180 +*)	LANG="en";;
   6.181 +
   6.182 +esac
   6.183 +
   6.184 +WOK=/home/slitaz/$SLITAZ_VERSION/wok
   6.185 +PACKAGES_REPOSITORY=/home/slitaz/$SLITAZ_VERSION/packages
   6.186 +
   6.187 +echo Content-type: text/html
   6.188 +echo
   6.189 +
   6.190 +# Search form
   6.191 +search_form()
   6.192 +{
   6.193 +	cat << _EOT_
   6.194 +
   6.195 +<div style="text-align: center; padding: 20px;">
   6.196 +<form method="post" action="search.cgi">
   6.197 +	<input type="hidden" name="lang" value="$LANG" />
   6.198 +	<select name="object">
   6.199 +		<option value="Package">$package</option>
   6.200 +		<option $selected_desc value="Desc">$desc</option>
   6.201 +		<option $selected_tags value="Tags">$tags</option>
   6.202 +		<option $selected_receipt value="Receipt">$receipt</option>
   6.203 +		<option $selected_depends value="Depends">$depends</option>
   6.204 +		<option $selected_build_depends value="BuildDepends">$bdepends</option>
   6.205 +		<option $selected_file value="File">$file</option>
   6.206 +		<option $selected_file_list value="File_list">$file_list</option>
   6.207 +		<option $selected_overlap value="FileOverlap">$overlap</option>
   6.208 +	</select>
   6.209 +	<strong>:</strong>
   6.210 +	<input type="text" name="query" size="20" value="$SEARCH" />
   6.211 +	<select name="version">
   6.212 +		<option value="cooking">$cooking</option>
   6.213 +		<option $selected_stable value="stable">$stable</option>
   6.214 +		<option $selected_1 value="1.0">1.0</option>
   6.215 +		<option $selected_2 value="2.0">2.0</option>
   6.216 +	</select>
   6.217 +	<input type="submit" name="search" value="$search" />
   6.218 +</form>
   6.219 +</div>
   6.220 +_EOT_
   6.221 +}
   6.222 +
   6.223 +# xHTML Header.
   6.224 +xhtml_header()
   6.225 +{
   6.226 +	cat << _EOF_
   6.227 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   6.228 +	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   6.229 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="$LANG" lang="$LANG">
   6.230 +<head>
   6.231 +	<title>SliTaz Packages - Search $SEARCH</title>
   6.232 +	<meta http-equiv="content-type" content="text/html; charset=$charset" />
   6.233 +	<meta name="description" content="Au sujet de SliTaz GNU/Linux mini système d'exploitation" />
   6.234 +	<meta name="keywords" lang="fr" content="Système, libre, gnu, linux, opensource, livecd" />
   6.235 +	<meta name="robots" content="index, follow, all" />
   6.236 +	<meta name="revisit-after" content="7 days" />
   6.237 +	<meta name="expires" content="never" />
   6.238 +	<meta name="modified" content="$DATE" />
   6.239 +	<meta name="author" content="ash, awk, grep, sed and cat"/>
   6.240 +	<meta name="publisher" content="www.slitaz.org" />
   6.241 +	<link rel="shortcut icon" href="/favicon.ico" />
   6.242 +	<link rel="stylesheet"  type="text/css" href="/slitaz.css" />
   6.243 +</head>
   6.244 +<body>
   6.245 +
   6.246 +<!-- Header -->
   6.247 +<div id="header">
   6.248 +    <!-- Logo -->
   6.249 +	<a href="http://pkgs.slitaz.org/"><img id="logo"
   6.250 +		src="/pics/website/logo.png" 
   6.251 +		title="pkgs.slitaz.org" alt="pkgs.slitaz.org" /></a>
   6.252 +	<p id="titre">#!/Packages</p>
   6.253 +</div>
   6.254 +_EOF_
   6.255 +}
   6.256 +
   6.257 +# xHTML Footer.
   6.258 +xhtml_footer()
   6.259 +{
   6.260 +	cat << _EOT_
   6.261 +<center>
   6.262 +<i>$(ls $WOK/ | wc -l) packages and $(unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | wc -l) files in $SLITAZ_VERSION database</i>
   6.263 +</center>
   6.264 +
   6.265 +<!-- End of content -->
   6.266 +</div>
   6.267 +
   6.268 +<!-- Footer -->
   6.269 +<div id="footer">
   6.270 +	<div class="right_box">
   6.271 +	<h4>SliTaz Network</h4>
   6.272 +		<ul>
   6.273 +			<li><a href="http://www.slitaz.org/">Main Website</a></li>
   6.274 +			<li><a href="http://doc.slitaz.org/">Documentation</a></li>
   6.275 +			<li><a href="http://forum.slitaz.org/">Support Forum</a></li>
   6.276 +			<li><a href="http://scn.slitaz.org/">Community Network</a></li>
   6.277 +			<li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li>
   6.278 +			<li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li>
   6.279 +		</ul>
   6.280 +	</div>
   6.281 +	<h4>SliTaz Packages</h4>
   6.282 +	<ul>
   6.283 +		<li><a href="#header">Top of the page</a></li>
   6.284 +		<li>Copyright &copy; <span class="year"></span>
   6.285 +			<a href="http://www.slitaz.org/">SliTaz</a></li>
   6.286 +		<li><a href="http://www.slitaz.org/en/about/">About the project</a></li>
   6.287 +		<li><a href="http://pkgs.slitaz.org/search.cgi">Search packages</a></li>
   6.288 +		<li>Page modified the _DATE_</li>
   6.289 +		<li><a href="http://validator.w3.org/check?uri=referer"><img
   6.290 +		src="http://pkgs.slitaz.org/pics/website/xhtml10.png" 
   6.291 +		title="Code validé XHTML 1.0" alt="Valid XHTML 1.0"
   6.292 +		style="width: 80px; height: 15px; vertical-align: middle;" /></a></li>
   6.293 +	</ul>
   6.294 +</div>
   6.295 +
   6.296 +</body>
   6.297 +</html>
   6.298 +_EOT_
   6.299 +}
   6.300 +
   6.301 +installed_size()
   6.302 +{
   6.303 +[ $VERBOSE -gt 0 ] &&
   6.304 +grep -A 3 "^$1\$" /home/slitaz/$SLITAZ_VERSION/packages/packages.txt | \
   6.305 +       grep installed | sed 's/.*(\(.*\) installed.*/(\1) /'
   6.306 +}
   6.307 +
   6.308 +package_entry()
   6.309 +{
   6.310 +if [ -s "$(dirname $0)/$SLITAZ_VERSION/$CATEGORY.html" ]; then
   6.311 +	cat << _EOT_
   6.312 +<a href="$SLITAZ_VERSION/$CATEGORY.html#$PACKAGE">$PACKAGE</a> $(installed_size $PACKAGE): $SHORT_DESC
   6.313 +_EOT_
   6.314 +else
   6.315 +	cat << _EOT_
   6.316 +<a href="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg">$PACKAGE</a> $(installed_size $PACKAGE): $SHORT_DESC
   6.317 +_EOT_
   6.318 +fi
   6.319 +}
   6.320 +
   6.321 +# recursive dependencies scan
   6.322 +dep_scan()
   6.323 +{
   6.324 +for i in $1; do
   6.325 +	case " $ALL_DEPS " in
   6.326 +	*\ $i\ *) continue;;
   6.327 +	esac
   6.328 +	ALL_DEPS="$ALL_DEPS $i"
   6.329 +	if [ -n "$2" ]; then
   6.330 +		echo -n "$2"
   6.331 +		(
   6.332 +		. $WOK/$i/receipt
   6.333 +		package_entry
   6.334 +		)
   6.335 +	fi
   6.336 +	[ -f $WOK/$i/receipt ] || continue
   6.337 +	DEPENDS=""
   6.338 +	. $WOK/$i/receipt
   6.339 +	[ -n "$DEPENDS" ] && dep_scan "$DEPENDS" "$2    "
   6.340 +done
   6.341 +}
   6.342 +
   6.343 +# recursive reverse dependencies scan
   6.344 +rdep_scan()
   6.345 +{
   6.346 +SEARCH=$1
   6.347 +case "$SEARCH" in
   6.348 +glibc-base|gcc-lib-base) cat <<EOT
   6.349 +	glibc-base and gcc-lib-base are implicit dependencies,
   6.350 +	<b>every</b> package is supposed to depend on them.
   6.351 +EOT
   6.352 +	return;;
   6.353 +esac
   6.354 +for i in $WOK/* ; do
   6.355 +	DEPENDS=""
   6.356 +	. $i/receipt
   6.357 +	echo "$(basename $i) $(echo $DEPENDS)"
   6.358 +done | awk -v search=$SEARCH '
   6.359 +function show_deps(deps, all_deps, pkg, space)
   6.360 +{
   6.361 +	if (all_deps[pkg] == 1) return
   6.362 +	all_deps[pkg] = 1
   6.363 +	if (space != "") printf "%s%s\n",space,pkg
   6.364 +	for (i = 1; i <= split(deps[pkg], mydeps, " "); i++) {
   6.365 +		show_deps(deps, all_deps, mydeps[i],"////" space)
   6.366 +	}
   6.367 +}
   6.368 +
   6.369 +{
   6.370 +	all_deps[$1] = 0
   6.371 +	for (i = 2; i <= NF; i++)
   6.372 +		deps[$i] = deps[$i] " " $1
   6.373 +}
   6.374 +
   6.375 +END {
   6.376 +	show_deps(deps, all_deps, search, "")
   6.377 +}
   6.378 +' | while read pkg; do
   6.379 +		. $WOK/${pkg##*/}/receipt
   6.380 +		cat << _EOT_
   6.381 +$(echo ${pkg%/*} | sed 's|/| |g') $(package_entry) 
   6.382 +_EOT_
   6.383 +done
   6.384 +}
   6.385 +
   6.386 +# Check package exists
   6.387 +package_exist()
   6.388 +{
   6.389 +	[ -f $WOK/$1/receipt ] && return 0
   6.390 +	cat << _EOT_
   6.391 +
   6.392 +<h3>$noresult</h3>
   6.393 +<pre class="package">
   6.394 +_EOT_
   6.395 +	return 1
   6.396 +}
   6.397 +
   6.398 +# Display < > &
   6.399 +htmlize()
   6.400 +{
   6.401 +	sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g'
   6.402 +}
   6.403 +
   6.404 +display_packages_and_files()
   6.405 +{
   6.406 +last=""
   6.407 +while read pkg file; do
   6.408 +	pkg=${pkg%:}
   6.409 +	if [ "$pkg" != "$last" ]; then
   6.410 +		. $WOK/$pkg/receipt
   6.411 +		
   6.412 +		package_entry
   6.413 +		last=$pkg
   6.414 +	fi
   6.415 +	echo "    $file"
   6.416 +done
   6.417 +}
   6.418 +
   6.419 +# Display search form and result if requested.
   6.420 +if [ "$REQUEST_METHOD" != "POST" ]; then
   6.421 +	xhtml_header
   6.422 +	cat << _EOT_
   6.423 +
   6.424 +<!-- Content -->
   6.425 +<div id="content">
   6.426 +
   6.427 +<h1>$package</h1>
   6.428 +<h2>$search</h2>
   6.429 +_EOT_
   6.430 +	search_form
   6.431 +	xhtml_footer
   6.432 +else
   6.433 +	xhtml_header
   6.434 +	cat << _EOT_
   6.435 +
   6.436 +<!-- Content -->
   6.437 +<div id="content">
   6.438 +
   6.439 +<h1>$package</h1>
   6.440 +<h2>$search</h2>
   6.441 +_EOT_
   6.442 +	search_form
   6.443 +	if [ "$OBJECT" = "Depends" ]; then
   6.444 +		if package_exist $SEARCH ; then
   6.445 +			cat << _EOT_
   6.446 +
   6.447 +<h3>$deptree</h3>
   6.448 +<pre class="package">
   6.449 +_EOT_
   6.450 +			ALL_DEPS=""
   6.451 +			dep_scan $SEARCH ""
   6.452 +			SUGGESTED=""
   6.453 +			. $WOK/$SEARCH/receipt
   6.454 +			if [ -n "$SUGGESTED" ]; then
   6.455 +				cat << _EOT_
   6.456 +</pre>
   6.457 +
   6.458 +<h3>$deptree (SUGGESTED)</h3>
   6.459 +<pre class="package">
   6.460 +_EOT_
   6.461 +				ALL_DEPS=""
   6.462 +				dep_scan "$SUGGESTED" "    "
   6.463 +			fi
   6.464 +			cat << _EOT_
   6.465 +</pre>
   6.466 +
   6.467 +<h3>$rdeptree</h3>
   6.468 +<pre class="package">
   6.469 +_EOT_
   6.470 +			ALL_DEPS=""
   6.471 +			rdep_scan $SEARCH
   6.472 +			cat << _EOT_
   6.473 +</pre>
   6.474 +_EOT_
   6.475 +		fi
   6.476 +	elif [ "$OBJECT" = "BuildDepends" ]; then
   6.477 +		if package_exist $SEARCH ; then
   6.478 +			cat << _EOT_
   6.479 +
   6.480 +<h3>$bdeplist</h3>
   6.481 +<pre class="package">
   6.482 +_EOT_
   6.483 +			BUILD_DEPENDS=""
   6.484 +			. $WOK/$SEARCH/receipt
   6.485 +			[ -n "$BUILD_DEPENDS" ] && for dep in $BUILD_DEPENDS ; do
   6.486 +				if [ ! -s $WOK/$dep/receipt ]; then
   6.487 +					cat << _EOT_
   6.488 +$dep: not found !
   6.489 +_EOT_
   6.490 +					continue
   6.491 +				fi
   6.492 +				. $WOK/$dep/receipt
   6.493 +				package_entry
   6.494 +			done
   6.495 +			cat << _EOT_
   6.496 +</pre>
   6.497 +
   6.498 +<h3>$rbdeplist</h3>
   6.499 +<pre class="package">
   6.500 +_EOT_
   6.501 +			for dep in $(grep -l $SEARCH $WOK/*/receipt); do
   6.502 +				BUILD_DEPENDS=""
   6.503 +				. $dep
   6.504 +				echo " $BUILD_DEPENDS " | grep -q " $SEARCH " &&
   6.505 +				package_entry
   6.506 +			done
   6.507 +			cat << _EOT_
   6.508 +</pre>
   6.509 +_EOT_
   6.510 +		fi
   6.511 +	elif [ "$OBJECT" = "FileOverlap" ]; then
   6.512 +		if package_exist $SEARCH ; then
   6.513 +			cat << _EOT_
   6.514 +
   6.515 +<h3>$overloading $SEARCH</h3>
   6.516 +<pre class="package">
   6.517 +_EOT_
   6.518 +			( unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep ^$SEARCH: ;
   6.519 +			  unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep -v ^$SEARCH: ) | awk '
   6.520 +BEGIN { pkg=""; last="x" }
   6.521 +{
   6.522 +	if ($2 == "") next
   6.523 +	if (index($2,last) == 1 && substr($2,1+length(last),1) == "/")
   6.524 +		delete file[last]
   6.525 +	last=$2
   6.526 +	if (pkg == "") pkg=$1
   6.527 +	if ($1 == pkg) file[$2]=$1
   6.528 +	else if (file[$2] == pkg) print
   6.529 +}
   6.530 +' | display_packages_and_files
   6.531 +			cat << _EOT_
   6.532 +</pre>
   6.533 +_EOT_
   6.534 +		fi
   6.535 +	elif [ "$OBJECT" = "File" ]; then
   6.536 +		cat << _EOT_
   6.537 +
   6.538 +<h3>$result</h3>
   6.539 +<pre class="package">
   6.540 +_EOT_
   6.541 +		last=""
   6.542 +		unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \
   6.543 +		| grep $SEARCH | while read pkg file; do
   6.544 +			echo "$file" | grep -q $SEARCH || continue
   6.545 +			if [ "$last" != "${pkg%:}" ]; then
   6.546 +				last=${pkg%:}
   6.547 +				(
   6.548 +				. $WOK/$last/receipt
   6.549 +				cat << _EOT_
   6.550 +
   6.551 +<i>$(package_entry)</i>
   6.552 +_EOT_
   6.553 +				)
   6.554 +			fi
   6.555 +			echo "    $file"
   6.556 +		done
   6.557 +	elif [ "$OBJECT" = "File_list" ]; then
   6.558 +		package_exist $SEARCH && cat << _EOT_
   6.559 +
   6.560 +<h3>$result</h3>
   6.561 +<pre class="package">
   6.562 +_EOT_
   6.563 +		last=""
   6.564 +		unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \
   6.565 +		| grep ^$SEARCH: |  sed 's/.*: /    /' | sort
   6.566 +	elif [ "$OBJECT" = "Desc" ]; then
   6.567 +		if [ -f $WOK/$SEARCH/description.txt ]; then
   6.568 +			cat << _EOT_
   6.569 +
   6.570 +<h3>$result</h3>
   6.571 +<pre class="package">
   6.572 +<pre>
   6.573 +$(htmlize < $WOK/$SEARCH/description.txt)
   6.574 +</pre>
   6.575 +_EOT_
   6.576 +		else
   6.577 +			cat << _EOT_
   6.578 +
   6.579 +<h3>$result</h3>
   6.580 +<pre class="package">
   6.581 +_EOT_
   6.582 +			last=""
   6.583 +			grep -i $SEARCH $PACKAGES_REPOSITORY/packages.desc | \
   6.584 +			sort | while read pkg extras ; do
   6.585 +				. $WOK/$pkg/receipt
   6.586 +				package_entry
   6.587 +			done
   6.588 +		fi
   6.589 +	elif [ "$OBJECT" = "Tags" ]; then
   6.590 +		cat << _EOT_
   6.591 +
   6.592 +<h3>$result</h3>
   6.593 +<pre class="package">
   6.594 +_EOT_
   6.595 +		last=""
   6.596 +		grep ^TAGS= $WOK/*/receipt |  grep -i $SEARCH | \
   6.597 +		sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do
   6.598 +				. $WOK/$pkg/receipt
   6.599 +				package_entry
   6.600 +			done
   6.601 +	elif [ "$OBJECT" = "Receipt" ]; then
   6.602 +		package_exist $SEARCH && cat << _EOT_
   6.603 +
   6.604 +<h3>$result</h3>
   6.605 +<pre class="package">
   6.606 +<pre>
   6.607 +$(if [ -f  $WOK/$SEARCH/taz/*/receipt ]; then
   6.608 +	cat $WOK/$SEARCH/taz/*/receipt
   6.609 +  else
   6.610 +    cat $WOK/$SEARCH/receipt
   6.611 +  fi | htmlize)
   6.612 +</pre>
   6.613 +_EOT_
   6.614 +	else
   6.615 +		cat << _EOT_
   6.616 +
   6.617 +<h3>$result</h3>
   6.618 +<pre class="package">
   6.619 +_EOT_
   6.620 +		for pkg in `ls $WOK/ | grep $SEARCH`
   6.621 +		do
   6.622 +			. $WOK/$pkg/receipt
   6.623 +			DESC=" <a href=\"?desc=$pkg\">description</a>"
   6.624 +			[ -f $WOK/$pkg/description.txt ] || DESC=""
   6.625 +			cat << _EOT_
   6.626 +$(package_entry)$DESC
   6.627 +_EOT_
   6.628 +		done
   6.629 +		equiv=$PACKAGES_REPOSITORY/packages.equiv
   6.630 +		vpkgs="$(cat $equiv | cut -d= -f1 | grep $SEARCH)"
   6.631 +		for vpkg in $vpkgs ; do
   6.632 +	cat << _EOT_
   6.633 +</pre>
   6.634 +
   6.635 +<h3>$result (package providing $vpkg)</h3>
   6.636 +<pre class="package">
   6.637 +_EOT_
   6.638 +			for pkg in $(grep $vpkg= $equiv | sed "s/$vpkg=//"); do
   6.639 +				. $WOK/${pkg#*:}/receipt
   6.640 +				package_entry
   6.641 +			done
   6.642 +		done
   6.643 +	fi
   6.644 +	cat << _EOT_
   6.645 +</pre>
   6.646 +_EOT_
   6.647 +	xhtml_footer
   6.648 +fi
   6.649 +
   6.650 +exit 0
     7.1 Binary file tazpkg-web/style/favicon.ico has changed
     8.1 Binary file tazpkg-web/style/pics/tazpkg.png has changed
     9.1 Binary file tazpkg-web/style/pics/website/header-img.png has changed
    10.1 Binary file tazpkg-web/style/pics/website/logo.png has changed
    11.1 Binary file tazpkg-web/style/pics/website/network.png has changed
    12.1 Binary file tazpkg-web/style/pics/website/text.png has changed
    13.1 Binary file tazpkg-web/style/pics/website/xhtml10.png has changed
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/tazpkg-web/style/slitaz.css	Thu Feb 24 04:33:56 2011 +0000
    14.3 @@ -0,0 +1,446 @@
    14.4 +/*
    14.5 +	CSS style for SliTaz Network - (c) 2011 SliTaz GNU/Linux
    14.6 +*/
    14.7 +
    14.8 +html {
    14.9 +	min-height:  102%;
   14.10 +}
   14.11 +body {
   14.12 +	background: #ffffff;
   14.13 +	color: black;
   14.14 +	font: 13px sans-serif, vernada, arial;
   14.15 +	margin: 0;
   14.16 +	border-top: 34px solid #f1f1f1;
   14.17 +}
   14.18 +a { text-decoration: underline; color: #103a5e; }
   14.19 +a:hover { text-decoration: none; color: blue; }
   14.20 +img { border: 0pt none; }
   14.21 +
   14.22 +/* Accessibility */
   14.23 +
   14.24 +#access {
   14.25 +	position: absolute;
   14.26 +	top: 4px;
   14.27 +	right: 0px;
   14.28 +	text-align: right;
   14.29 +	width: auto;
   14.30 +	margin: 0;
   14.31 +	padding: 4px 4px 4px 20px;
   14.32 +	font-size: 11px;
   14.33 +	font-weight: bold;
   14.34 +}
   14.35 +#access a {
   14.36 +	background: transparent;
   14.37 +	color: #0F314E;
   14.38 +	text-decoration: none;
   14.39 +}
   14.40 +#access a:hover { color: #b64b22; }
   14.41 +#access img { vertical-align: middle; }
   14.42 +
   14.43 +/* Header */
   14.44 +
   14.45 +#header {
   14.46 +	background: #351a0a url(pics/website/header-img.png) no-repeat top right;
   14.47 +	color: black;
   14.48 +	width: 100%;
   14.49 +	height: 42px;
   14.50 +	border-top: 1px solid black;
   14.51 +	border-bottom: 1px solid #999;
   14.52 +	margin-bottom: 33px;
   14.53 +}
   14.54 +#titre {
   14.55 +	position: absolute;
   14.56 +	font-size: 14px;
   14.57 +	font-weight: bolder ;
   14.58 +	left: 180px;
   14.59 +	top: 4px;
   14.60 +}
   14.61 +#logo {
   14.62 +	position: absolute;
   14.63 +	float: left;
   14.64 +	left: 16px;
   14.65 +	top: -10px;
   14.66 +	width: 200px;
   14.67 +	height: 74px;
   14.68 +}
   14.69 +
   14.70 +/* Side bar */
   14.71 +
   14.72 +#nav {
   14.73 +	position: absolute;
   14.74 +	top: 102px;
   14.75 +	right: 80px;
   14.76 +	color: #555555;
   14.77 +	float: right;
   14.78 +	width: 250px;
   14.79 +	line-height: 1.5em;
   14.80 +	text-align: left;
   14.81 +	font-size: 12px;
   14.82 +}
   14.83 +#nav h4 {
   14.84 +	font-size: 120%;
   14.85 +	color: #666666;
   14.86 +	font-weight: bold;
   14.87 +	margin: 0;
   14.88 +	padding: 0 0 1px 0;
   14.89 +	border-bottom: 1px solid #cecece;
   14.90 +}
   14.91 +#nav a {
   14.92 +	color: #0F314E;
   14.93 +	background: inherit;
   14.94 +	display: block;
   14.95 +	text-decoration: none;
   14.96 +	font-weight: bold;
   14.97 +}
   14.98 +#nav a:hover {
   14.99 +	color: #b64b22;
  14.100 +	text-decoration: none;
  14.101 +	display: block;
  14.102 +}
  14.103 +#nav .nav_box ul {
  14.104 +	list-style-type: none;
  14.105 +	margin: 0;
  14.106 +	padding: 10px 24px 10px 0px;
  14.107 +	background-color: inherit;
  14.108 +}
  14.109 +#nav li { display: inline; }
  14.110 +#nav ul {
  14.111 +	-moz-border-radius: 8px;
  14.112 +	-webkit-border-radius: 8px;
  14.113 +	border-radius: 8px;
  14.114 +	list-style-type: none;
  14.115 +	margin: 10px 0;
  14.116 +	padding: 10px 24px 10px 24px;
  14.117 +	background-color: #eaeaea;
  14.118 +}
  14.119 +.nav_box {
  14.120 +	margin: 10px 0;
  14.121 +	padding: 10px 24px 10px 24px;
  14.122 +	background-color: #eaeaea;
  14.123 +	text-align: justify;
  14.124 +}
  14.125 +#nav .nav_box p { line-height: 1.3em; }
  14.126 +#nav .nav_box p a {
  14.127 +	display: inline;
  14.128 +	font-weight: normal;
  14.129 +	text-decoration: underline;
  14.130 +}
  14.131 +#nav .nav_box p a:hover {
  14.132 +	text-decoration: none;
  14.133 +	color: blue;
  14.134 +	background: inherit;
  14.135 +}
  14.136 +
  14.137 +/* Page content */
  14.138 +
  14.139 +#content, #content-full {
  14.140 +	background: white;
  14.141 +	color: black;
  14.142 +	text-align: justify;
  14.143 +	height: auto;
  14.144 +}
  14.145 +#content, #content-full {
  14.146 +	margin: 6px 320px 0px 0px;
  14.147 +	padding: 0px 40px 60px 80px;
  14.148 +}
  14.149 +#content-full {
  14.150 +	margin: 0;
  14.151 +	padding: 0px 80px 40px 80px;
  14.152 +}
  14.153 +#content li, #content-full li {
  14.154 +	line-height: 1.5em;
  14.155 +	text-align: left;
  14.156 +}
  14.157 +#news li {
  14.158 +	list-style-type: square;
  14.159 +	border-bottom: 1px dotted #BEBEBE;
  14.160 +	margin-left: -25px;
  14.161 +	padding: 4px 0px 4px 0px;
  14.162 +}
  14.163 +#news a { text-decoration: none; }
  14.164 +
  14.165 +/* Box and block. */
  14.166 +
  14.167 +.infobox {
  14.168 +	margin: 20px 60px;
  14.169 +	padding: 12px;
  14.170 +	background: #f8f8f8;
  14.171 +}
  14.172 +.infobox img { vertical-align: middle; }
  14.173 +.infobox:hover { background-color: #FBFBFB; }
  14.174 +.block {
  14.175 +	/*padding-bottom: 35%;*/
  14.176 +	color: black;
  14.177 +	min-height: 200px;
  14.178 +	margin-bottom: 40px;
  14.179 +}
  14.180 +.block ul {
  14.181 +	list-style-type: none;
  14.182 +	margin: 0;
  14.183 +	padding: 0 20px;
  14.184 +}
  14.185 +.block_left {
  14.186 +	width: 46%;
  14.187 +	float: left;
  14.188 +	background-color: #eaeaea;
  14.189 +	margin: 4px 2px;
  14.190 +	padding: 0 10px 10px 10px;
  14.191 +}
  14.192 +.block_right {
  14.193 +	width: 46%;
  14.194 +	float: right;
  14.195 +	background-color: #eaeaea;
  14.196 +	margin: 4px 2px;
  14.197 +	padding: 0 10px 10px 10px;
  14.198 +}
  14.199 +#block_top {
  14.200 +	color: black;
  14.201 +	background-color: #eaeaea;
  14.202 +	min-height: 180px;
  14.203 +	margin-bottom: 40px;
  14.204 +	margin-right: 340px;
  14.205 +	padding: 0 10px;
  14.206 +}
  14.207 +#block_nav {
  14.208 +	width: 300px;
  14.209 +	min-height: 180px;
  14.210 +	float: right;
  14.211 +	background-color: #eaeaea;
  14.212 +	margin: 0;
  14.213 +	padding: 0 10px;
  14.214 +}
  14.215 +.nav_box, .infobox, .block_left, .block_right, #block_top, 
  14.216 +#block_nav, #footer {
  14.217 +	-moz-border-radius: 8px;
  14.218 +	-webkit-border-radius: 8px;
  14.219 +	border-radius: 8px;
  14.220 +	-moz-box-shadow: 0 1px 3px #666;
  14.221 +	-webkit-box-shadow: 0 1px 3px #666;
  14.222 +	box-shadow: 0 1px 3px #666;
  14.223 +	/* CSS3 transition */
  14.224 +	-webkit-transition-property: background-color;
  14.225 +	-webkit-transition-duration: 2s;
  14.226 +	-moz-transition-property: background-color;
  14.227 +	-moz-transition-duration: 2s;
  14.228 +	transition-property: background-color;
  14.229 +	transition-duration: 2s;
  14.230 +}
  14.231 +#block_nav { font-weight: bold; }
  14.232 +#block_nav a { text-decoration: none; }
  14.233 +#block_nav li a:hover { color: #b64b22; }
  14.234 +#block_nav ul { margin: 0; list-style-type: none; }
  14.235 +#block_nav h3 { font-size: 110%; }
  14.236 +.nav_box:hover, .block_left:hover, .block_right:hover, 
  14.237 +#block_top:hover, #block_nav:hover, #footer:hover { 
  14.238 +	background-color: #f8f8f8;
  14.239 +}
  14.240 +.right_box {
  14.241 +	width: 50%;
  14.242 +	float: right;
  14.243 +}
  14.244 +/* Text transform at 45deg */
  14.245 +.floor {
  14.246 +	color: #999999;
  14.247 +	font-size: 20px;
  14.248 +	-webkit-transform: rotate(-45deg) skew(15deg, 15deg);
  14.249 +	-moz-transform: rotate(-45deg) skew(15deg, 15deg);
  14.250 +	-o-transform: rotate(-45deg) skew(15deg, 15deg);
  14.251 +	-ms-transform: rotate(-45deg) skew(15deg, 15deg);
  14.252 +	transform: rotate(-45deg) skew(15deg, 15deg);
  14.253 +}
  14.254 +#twitter, .feedbox {
  14.255 +	margin-top: 20px;
  14.256 +	-moz-border-radius: 8px;
  14.257 +	-webkit-border-radius: 8px;
  14.258 +	border-radius: 8px;
  14.259 +	-moz-box-shadow: 0 1px 3px #666;
  14.260 +	-webkit-box-shadow: 0 1px 3px #666;
  14.261 +	box-shadow: 0 1px 3px #666;
  14.262 +}
  14.263 +.feedbox {
  14.264 +	background-color: #f9f9f9;
  14.265 +	padding: 10px 20px;
  14.266 +	margin: 20px 100px;
  14.267 +}
  14.268 +.feedbox div {
  14.269 +	height: 320px;
  14.270 +	overflow: auto;
  14.271 +}
  14.272 +.feedbox ul { list-style-type: none; margin: 0; }
  14.273 +
  14.274 +/* Button */
  14.275 +
  14.276 +.button { margin-left: 20px; }
  14.277 +.button a { 
  14.278 +	background-color: #b64b22;
  14.279 +	color: #ffffff;
  14.280 +	margin-right: 6px;
  14.281 +	padding: 6px 10px;
  14.282 +	font-size: 14px;
  14.283 +	-moz-border-radius: 4px;
  14.284 +	-webkit-border-radius: 4px;
  14.285 +	border-radius: 4px;
  14.286 +	-moz-box-shadow: 0 1px 3px #666;
  14.287 +	-webkit-box-shadow: 0 1px 3px #666;
  14.288 +	box-shadow: 0 1px 3px #666;
  14.289 +}
  14.290 +.button a:hover, input[type=submit]:hover { 
  14.291 +	background-color: #a3431f;
  14.292 +	color: #ffffff;
  14.293 +}
  14.294 +input[type=submit] {
  14.295 +	border: 1px solid #b64b22;
  14.296 +	background-color: #b64b22;
  14.297 +	color: white;
  14.298 +	font-weight: bold;
  14.299 +	cursor: pointer;
  14.300 +	padding: 3px 10px;
  14.301 +	font-size: 14px;
  14.302 +	-moz-border-radius: 2px;
  14.303 +	-webkit-border-radius: 2px;
  14.304 +	border-radius: 2px;
  14.305 +	-moz-box-shadow: 0 0 5px #666;
  14.306 +	-webkit-box-shadow: 0 0 5px#666;
  14.307 +	box-shadow: 0 0 5px #666;
  14.308 +	margin-left: -5px;
  14.309 +}
  14.310 +input[type=text] {
  14.311 +	border: 1px solid #333333;
  14.312 +	padding: 3px;
  14.313 +	width: 100%;
  14.314 +}
  14.315 +
  14.316 +/* Clouds */
  14.317 +
  14.318 +#cloud {
  14.319 +	padding: 10px 0px;
  14.320 +	line-height: 3em;
  14.321 +	text-align: center;
  14.322 +}
  14.323 +#cloud a { padding: 0 2px; color: #444444; }
  14.324 +#cloud a.tag1 { font-size: 0.7em; font-weight: 100; }
  14.325 +#cloud a.tag2 { font-size: 0.8em; font-weight: 200; }
  14.326 +#cloud a.tag3 { font-size: 0.9em; font-weight: 300; }
  14.327 +#cloud a.tag4 { font-size: 1.0em; font-weight: 400; }
  14.328 +#cloud a.tag5 { font-size: 1.2em; font-weight: 500; }
  14.329 +#cloud a.tag6 { font-size: 1.4em; font-weight: 600; }
  14.330 +#cloud a.tag7 { font-size: 1.6em; font-weight: 700; }
  14.331 +#cloud a.tag8 { font-size: 1.8em; font-weight: 800; }
  14.332 +#cloud a.tag9 { font-size: 2.2em; font-weight: 900; }
  14.333 +#cloud a.tag10 { font-size: 2.5em; font-weight: 900; }
  14.334 +
  14.335 +/* Slideshow and gallery */
  14.336 +
  14.337 +#slideshow
  14.338 +{
  14.339 +	overflow: hidden;
  14.340 +	margin: 10px auto 10px;
  14.341 +	position: relative;
  14.342 +	width: 260px;
  14.343 +	height: 163px;
  14.344 +}
  14.345 +#slideshow img
  14.346 +{
  14.347 +	border: 0;
  14.348 +	width: 260px;
  14.349 +	height: 163px;
  14.350 +}
  14.351 +#gallery { text-align: center; }
  14.352 +
  14.353 +/* HTML styles */
  14.354 +
  14.355 +h1 {
  14.356 +	color: #444444;
  14.357 +	background: transparent;
  14.358 +	text-align: left;
  14.359 +	margin: 0px 0px 4px 0px;
  14.360 +	font-size: 150%;
  14.361 +	font-weight: bold;
  14.362 +	padding: 5px 0 0 10px;
  14.363 +}
  14.364 +h2 {
  14.365 +	color: #b64b22;
  14.366 +	padding: 0;
  14.367 +	margin: 20px 0 0 0;
  14.368 +	font-size: 130%;
  14.369 +	font-weight: bold;
  14.370 +}
  14.371 +h3 {
  14.372 +	font-weight: bold;
  14.373 +	color: #666666;
  14.374 +	background: transparent;
  14.375 +}
  14.376 +h3 img, h2 img { 
  14.377 +	vertical-align: middle;
  14.378 +	width: 20px;
  14.379 +	height: 20px;
  14.380 +	padding-right: 4px; 
  14.381 +}
  14.382 +code, tt {
  14.383 +	font-size: 12px;
  14.384 +	color: #669900;
  14.385 +}
  14.386 +pre, pre.script {
  14.387 +	padding: 10px;
  14.388 +	color: black;
  14.389 +	background: #E8E8E8;
  14.390 +	border: 1px inset #606060;
  14.391 +}
  14.392 +
  14.393 +/* Packages pages */
  14.394 +
  14.395 +.pkg_nav {
  14.396 +	border-top: 1px solid black;
  14.397 +	margin-top: 10px;
  14.398 +	padding-top: 10px;
  14.399 +}
  14.400 +pre.package {
  14.401 +	padding: 0px;
  14.402 +	color: black;
  14.403 +	background: white;
  14.404 +}
  14.405 +p.get {
  14.406 +	text-align: center;
  14.407 +	padding: 10px;
  14.408 +	color: black;
  14.409 +	background: #F3F3F3;
  14.410 +	border: 1px solid #DEDEDE;
  14.411 +	border-radius: 4px;
  14.412 +	-moz-border-radius: 4px;
  14.413 +	-webkit-border-radius: 4px;
  14.414 +}
  14.415 +p.get a {
  14.416 +	font-weight: bold;
  14.417 +	text-decoration: none;
  14.418 +}
  14.419 +.pkgs-search { 
  14.420 +	text-align: center; 
  14.421 +	padding: 40px 20px 80px 20px;
  14.422 +}
  14.423 +
  14.424 +/* Footer */
  14.425 +
  14.426 +#footer {
  14.427 +	margin: 0px 80px 80px 80px;
  14.428 +	padding: 10px;
  14.429 +	background: #eaeaea;
  14.430 +	color: #666666;
  14.431 +	height: 180px;
  14.432 +	clear: both;
  14.433 +	border-radius: 8px;
  14.434 +	-moz-border-radius: 8px;
  14.435 +	-webkit-border-radius: 8px;
  14.436 +	-moz-box-shadow: 0 1px 3px #666;
  14.437 +	-webkit-box-shadow: 0 1px 3px #666;
  14.438 +	box-shadow: 0 1px 3px #666;
  14.439 +}
  14.440 +#footer a { color: #666666; }
  14.441 +#footer a:hover { color: #333333; }
  14.442 +#footer ul { list-style-type: none; }
  14.443 +#footer li { padding: 2px; }
  14.444 +#footer h4 { margin: 0 20px; font-size: 125%; }
  14.445 +
  14.446 +.year:after {
  14.447 +	/* content: "2007-2011"; */
  14.448 +	content: "2011";
  14.449 +}
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/tazpkg-web/tazpkg-web	Thu Feb 24 04:33:56 2011 +0000
    15.3 @@ -0,0 +1,290 @@
    15.4 +#!/bin/sh
    15.5 +# SliTaz Packages Web interface generator: http://pkgs.slitaz.org/
    15.6 +#
    15.7 +# (C) 2011 SliTaz project - GNU General Public License v3.
    15.8 +# Christophe Lincoln <pankso@slitaz.org>
    15.9 +#
   15.10 +
   15.11 +. /etc/slitaz/tazpkg-web.conf
   15.12 +
   15.13 +RELEASE="$1"
   15.14 +PAGES_DIR=$WEB_INTERFACE/$RELEASE
   15.15 +DATE=`date +%Y-%m-%d\ \%H:%M:%S`
   15.16 +YEAR=`date +%Y`
   15.17 +
   15.18 +status()
   15.19 +{
   15.20 +	local CHECK=$?
   15.21 +	echo -en "\033[70G"
   15.22 +	if [ $CHECK = 0 ]; then
   15.23 +		echo "Done"
   15.24 +	else
   15.25 +		echo "Failed"
   15.26 +	fi
   15.27 +	return $CHECK
   15.28 +}
   15.29 +
   15.30 +# Search from option with current version in first so users dont have
   15.31 +# to select the correct one.
   15.32 +search_form_option()
   15.33 +{
   15.34 +	if [ "$RELEASE" == "stable" ]; then
   15.35 +		cat << _EOT_
   15.36 +			<option>stable</option>
   15.37 +			<option>cooking</option>
   15.38 +			<option>2.0</option>
   15.39 +			<option>1.0</option>
   15.40 +_EOT_
   15.41 +	else
   15.42 +		cat << _EOT_
   15.43 +			<option>cooking</option>
   15.44 +			<option>stable</option>
   15.45 +			<option>2.0</option>
   15.46 +			<option>1.0</option>
   15.47 +_EOT_
   15.48 +	fi
   15.49 +}
   15.50 +
   15.51 +# xHTML Header.
   15.52 +xhtml_header()
   15.53 +{
   15.54 +	cat $LIB_DIR/html/header.html > $PAGES_DIR/$page.html
   15.55 +	sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html
   15.56 +	sed -i s/"_PAGE_"/"$page"/ $PAGES_DIR/$page.html
   15.57 +	sed -i s/"_DATE_"/"$DATE"/ $PAGES_DIR/$page.html
   15.58 +}
   15.59 +
   15.60 +# xHTML Footer.
   15.61 +xhtml_footer()
   15.62 +{
   15.63 +	cat $LIB_DIR/html/footer.html >> $PAGES_DIR/$page.html
   15.64 +	sed -i s/"_DATE_"/"$DATE"/ $PAGES_DIR/$page.html
   15.65 +	sed -i s/"_YEAR_"/"$YEAR"/ $PAGES_DIR/$page.html
   15.66 +}
   15.67 +
   15.68 +# Index pages with categories and search form.
   15.69 +gen_index_content()
   15.70 +{
   15.71 +	cat >> $PAGES_DIR/$page.html << _EOT_
   15.72 +
   15.73 +<div class="pkgs-search">
   15.74 +	<form method="post" action="http://pkgs.slitaz.org/search.cgi">
   15.75 +		<p>
   15.76 +			<input type="text" name="query" size="32" />
   15.77 +			<input type="submit" name="search" value="Search" />
   15.78 +		</p>
   15.79 +		<select name="object">
   15.80 +			<option>Package</option>
   15.81 +			<option>Desc</option>
   15.82 +			<option>Tags</option>
   15.83 +			<option>Receipt</option>
   15.84 +			<option>Depends</option>
   15.85 +			<option>BuildDepends</option>
   15.86 +			<option>File</option>
   15.87 +			<option>File_list</option>
   15.88 +			<option>FileOverlap</option>
   15.89 +		</select>
   15.90 +		<select name="version">
   15.91 +`search_form_option`
   15.92 +		</select>
   15.93 +	</form>
   15.94 +	<p>
   15.95 +		$packages packages - Database generated on: $DATE
   15.96 +	</p>
   15.97 +</div>
   15.98 +_EOT_
   15.99 +	sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html
  15.100 +}
  15.101 +
  15.102 +# Packages <h3> and infos in <pre>. Some packages use EXTRAVERSION in
  15.103 +# the receipt so keep the value or set it to the kernel version.
  15.104 +pkgs_pages_content()
  15.105 +{
  15.106 +	for pkg in $WOK/*
  15.107 +	do
  15.108 +		DEPENDS=""
  15.109 +		DEPENDS_LINKS=""
  15.110 +		EXTRAVERSION=""
  15.111 +		. $pkg/receipt
  15.112 +		packages=$(($packages+1))
  15.113 +		cat >> $PAGES_DIR/$CATEGORY.html << _EOT_
  15.114 +
  15.115 +<a name="$PACKAGE"></a>
  15.116 +<h3>
  15.117 +<a href="tazpkg://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg">
  15.118 +<img src="/pics/tazpkg.png" 
  15.119 +	title="install" alt="install" 
  15.120 +	style="vertical-align: middle; width: 24px; height: 24px;" /></a>
  15.121 +$PACKAGE</h3>
  15.122 +<pre class="package">
  15.123 +Version    : $VERSION
  15.124 +Short desc : $SHORT_DESC
  15.125 +Web site   : <a href="$WEB_SITE">$WEB_SITE</a>
  15.126 +_EOT_
  15.127 +		[ -z "$EXTRAVERSION" ] && EXTRAVERSION="_$KERNEL"
  15.128 +		# Extraversion string or not
  15.129 +		if [ -f "$PACKAGES_REPOSITORY/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg" ]; then
  15.130 +			cat >> $PAGES_DIR/$CATEGORY.html << _EOT_
  15.131 +Download   : <a href="http://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg">$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg</a>
  15.132 +_EOT_
  15.133 +			echo '</pre>' >> $PAGES_DIR/$CATEGORY.html
  15.134 +		else
  15.135 +			# Check if package exists, could be virtual?
  15.136 +			[ -f "$PACKAGES_REPOSITORY/$PACKAGE-$VERSION.tazpkg" ] &&
  15.137 +			cat >> $PAGES_DIR/$CATEGORY.html << _EOT_
  15.138 +Download   : <a href="http://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-$VERSION.tazpkg">$PACKAGE-$VERSION.tazpkg</a>
  15.139 +_EOT_
  15.140 +			echo '</pre>' >> $PAGES_DIR/$CATEGORY.html
  15.141 +		fi
  15.142 +		# Dependencies with link to the package information using
  15.143 +		# category.html#anchor
  15.144 +		if [ -n "$DEPENDS" ]; then
  15.145 +			for dep in $DEPENDS
  15.146 +			do
  15.147 +				receipt=$WOK/$dep/receipt
  15.148 +				if [ -f "$receipt" ]; then
  15.149 +					cat=`grep CATEGORY $receipt | sed s/CATEGORY=\"// | sed s/\"//`
  15.150 +					DEPENDS_LINKS=${DEPENDS_LINKS}"<a href=\"$cat.html#$dep\">$dep</a> "
  15.151 +				fi
  15.152 +			done
  15.153 +			cat >> $PAGES_DIR/$CATEGORY.html << _EOT_
  15.154 +<p>Depends : $DEPENDS_LINKS</p>
  15.155 +_EOT_
  15.156 +		fi
  15.157 +	done
  15.158 +}
  15.159 +
  15.160 +# Pages footer
  15.161 +pages_footer()
  15.162 +{
  15.163 +	for page in $CATEGORIES
  15.164 +	do
  15.165 +		# Gen categories menu/links
  15.166 +		echo '' >> $PAGES_DIR/$page.html
  15.167 +		echo '<div class="infobox"><p>' >> $PAGES_DIR/$page.html
  15.168 +		echo 'Categories' >> $PAGES_DIR/$page.html
  15.169 +		for i in $CATEGORIES
  15.170 +		do
  15.171 +			cat >> $PAGES_DIR/$page.html << _EOF_
  15.172 +| <a href="$i.html">$i</a>
  15.173 +_EOF_
  15.174 +		done
  15.175 +		echo '</p></div>' >> $PAGES_DIR/$page.html
  15.176 +		xhtml_footer
  15.177 +	done
  15.178 +}
  15.179 +
  15.180 +# Home page with search form and tag cloud.
  15.181 +home_page()
  15.182 +{
  15.183 +	PAGES_DIR=$WEB_INTERFACE
  15.184 +	page="index"
  15.185 +	h2="Web interface"
  15.186 +	RELEASE=""
  15.187 +	xhtml_header
  15.188 +	cat $LIB_DIR/html/home.html >> $PAGES_DIR/$page.html
  15.189 +	xhtml_footer
  15.190 +}
  15.191 +
  15.192 +# Generate all categories pages and release index.
  15.193 +gen_all_pages()
  15.194 +{
  15.195 +	# Clean previews files.
  15.196 +	rm -rf $PAGES_DIR
  15.197 +	mkdir -p $PAGES_DIR
  15.198 +	echo -e "\nStarting to build the $RELEASE Web interface... "
  15.199 +	echo "================================================================================"
  15.200 +	# Packages pages header, menu and content top at first.
  15.201 +	echo -n "Generating all page headers..."
  15.202 +	for page in $CATEGORIES
  15.203 +	do
  15.204 +		h2=$page
  15.205 +		xhtml_header
  15.206 +		cat $LIB_DIR/html/menu.html >> $PAGES_DIR/$page.html
  15.207 +		sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html
  15.208 +		echo "<h2>Category: $h2</h2>" >> $PAGES_DIR/$page.html
  15.209 +	done
  15.210 +	status
  15.211 +	# Scan the wok and classify packages by category.
  15.212 +	echo -n "Scanning the wok and generating page contents..."
  15.213 +	pkgs_pages_content
  15.214 +	status
  15.215 +	# Gen all packages pages footer.
  15.216 +	echo -n "Generating all page footers..."
  15.217 +	pages_footer
  15.218 +	status
  15.219 +	# Stable or Cooking index with categories and home page.
  15.220 +	echo -n "Generating the main index..."
  15.221 +	page="index"
  15.222 +	h2="Categories"
  15.223 +	xhtml_header
  15.224 +	cat $LIB_DIR/html/menu.html >> $PAGES_DIR/$page.html
  15.225 +	gen_index_content
  15.226 +	xhtml_footer
  15.227 +	home_page
  15.228 +	status
  15.229 +	echo "================================================================================"
  15.230 +	echo -e "Pages generated: $WEB_INTERFACE\n"
  15.231 +}
  15.232 +
  15.233 +# Prefer the Hg wok in the chroot. On host running Tazbb the wok's
  15.234 +# are updated and copied automatically and so more up-to-date.
  15.235 +
  15.236 +case "$1" in
  15.237 +	stats)
  15.238 +		size=`du -sh $WEB_INTERFACE | awk '{ print $1 }'`
  15.239 +		pages=`find $WEB_INTERFACE -name *.html | wc -l`
  15.240 +		stable=`find $WEB_INTERFACE/stable -name *.html | wc -l`
  15.241 +		cooking=`find $WEB_INTERFACE/cooking -name *.html | wc -l`
  15.242 +		cat << _EOT_
  15.243 +
  15.244 +Tazpkg-web statistics
  15.245 +================================================================================
  15.246 +Web interface : $WEB_INTERFACE ($size)
  15.247 +xHTML pages   : $pages (Stable $stable - Cooking $cooking)
  15.248 +Library path  : $LIB_DIR
  15.249 +Stable path   : $STABLE
  15.250 +Cooking path  : $COOKING
  15.251 +================================================================================
  15.252 +
  15.253 +_EOT_
  15.254 +		;;
  15.255 +	check)
  15.256 +		RELEASE=$2
  15.257 +		[ -z "$RELEASE" ] && RELEASE=cooking
  15.258 +		echo -e "\nChecking: $WEB_INTERFACE/$RELEASE\n"
  15.259 +		for page in `cd $WEB_INTERFACE/$RELEASE && ls *.html`
  15.260 +		do
  15.261 +			if ! echo "$CATEGORIES index" | grep -qw ${page%.html}; then
  15.262 +				echo "Wrong category: ${page%.html}"
  15.263 +			fi
  15.264 +		done && echo "" ;;
  15.265 +	stable)
  15.266 +		PACKAGES_REPOSITORY=$STABLE/packages
  15.267 +		if [ -d $STABLE/chroot/home/slitaz/hg/wok ]; then
  15.268 +			WOK=$STABLE/chroot/home/slitaz/hg/wok
  15.269 +		else
  15.270 +			WOK=$STABLE/wok
  15.271 +		fi
  15.272 +		KERNEL=`cat $WOK/linux/receipt | grep ^VERSION= | cut -d '"' -f 2`
  15.273 +		gen_all_pages ;;
  15.274 +	cooking)
  15.275 +		PACKAGES_REPOSITORY=$COOKING/packages
  15.276 +		if [ -d $COOKING/chroot/home/slitaz/hg/wok ]; then
  15.277 +			WOK=$COOKING/chroot/home/slitaz/hg/wok
  15.278 +		else
  15.279 +			WOK=$COOKING/wok
  15.280 +		fi
  15.281 +		KERNEL=`cat $WOK/linux/receipt | grep ^VERSION= | cut -d '"' -f 2`
  15.282 +		gen_all_pages ;;
  15.283 +	*|usage)
  15.284 +		cat << _EOT_
  15.285 +
  15.286 +Tazpkg-web - SliTaz Packages Web interface generator.
  15.287 +Usage: `basename $0` [slitaz-release|stats|check]
  15.288 +
  15.289 +_EOT_
  15.290 +		;;
  15.291 +esac
  15.292 +
  15.293 +exit 0
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/tazpkg-web/tazpkg-web.conf	Thu Feb 24 04:33:56 2011 +0000
    16.3 @@ -0,0 +1,29 @@
    16.4 +# tazpkg-web.conf: SliTaz packages Web interface configuration file.
    16.5 +#
    16.6 +
    16.7 +# Path to the Web interface.
    16.8 +WEB_INTERFACE="/var/www/vhosts/pkgs"
    16.9 +
   16.10 +# Path to xHTML and XML templates.
   16.11 +LIB_DIR="/var/lib/tazpkg-web"
   16.12 +
   16.13 +# Path to each version.
   16.14 +STABLE="/home/slitaz/stable"
   16.15 +COOKING="/home/slitaz/cooking"
   16.16 +
   16.17 +# Packages categories.
   16.18 +CATEGORIES="
   16.19 +base-system
   16.20 +x-window
   16.21 +utilities
   16.22 +network
   16.23 +graphics
   16.24 +multimedia
   16.25 +office
   16.26 +development
   16.27 +system-tools
   16.28 +security
   16.29 +games
   16.30 +misc
   16.31 +meta
   16.32 +non-free"
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/tazpkg-web/xml/rss-header.xml	Thu Feb 24 04:33:56 2011 +0000
    17.3 @@ -0,0 +1,15 @@
    17.4 +<?xml version="1.0" ?>
    17.5 +<rss version="2.0">
    17.6 +<channel>
    17.7 +	<title>SliTaz _RELEASE_ packages</title>
    17.8 +	<link>http://www.slitaz.org/</link>
    17.9 +	<lastBuildDate>_DATE_</lastBuildDate>
   17.10 +	<description>Latest packages releases for SliTaz GNU/Linux</description>
   17.11 +	<language>en</language>
   17.12 +	<generator>Tazpkg-web</generator>
   17.13 +
   17.14 +	<image>
   17.15 +		<title>SliTaz GNU/Linux</title>
   17.16 +		<url>../pics/website/slitaz-spider.png</url>
   17.17 +		<link>http://pkgs.slitaz.org/</link>
   17.18 +	</image>