slitaz-forge rev 434

Add pangolin web interface and update pangolin tool
author Christophe Lincoln <pankso@slitaz.org>
date Sun Jan 19 19:34:21 2014 +0100 (2014-01-19)
parents 1e3eb0df6a4a
children 44090397e2ec
files pangolin/pangolin pangolin/web/HEADER.html pangolin/web/favicon.ico pangolin/web/graphs.php pangolin/web/images/archive.png pangolin/web/images/development.png pangolin/web/images/down.png pangolin/web/images/download.png pangolin/web/images/info.png pangolin/web/images/iso.png pangolin/web/images/logo.png pangolin/web/images/monitor.png pangolin/web/images/network.png pangolin/web/images/open.png pangolin/web/images/paypal.png pangolin/web/images/slitaz-doc.png pangolin/web/images/tazpkg.png pangolin/web/index.php pangolin/web/mirrors pangolin/web/robots.txt pangolin/web/slitaz.css
line diff
     1.1 --- a/pangolin/pangolin	Wed Jan 15 15:47:36 2014 +0100
     1.2 +++ b/pangolin/pangolin	Sun Jan 19 19:34:21 2014 +0100
     1.3 @@ -53,7 +53,7 @@
     1.4  		newline
     1.5  		boldify "Updating: www.slitaz.org..."
     1.6  		cd ${WEBSITE} && hg pull -u 
     1.7 -		newline;;
     1.8 +		newline ;;
     1.9  	up-forum)
    1.10  		# Update forum.slitaz.org theme
    1.11  		newline
    1.12 @@ -78,10 +78,17 @@
    1.13  		cp -a slitaz-mercurial-style/* $PYTHON_LIB/site-packages/mercurial
    1.14  		chown -R root.root $PYTHON_LIB/site-packages/mercurial/templates
    1.15  		newline ;;
    1.16 +	up-pangolin)
    1.17 +		# Update pangolin.slitaz.org
    1.18 +		newline
    1.19 +		boldify "Updating: pangolin.slitaz.org..."
    1.20 +		cd ${REPOS}/slitaz-forge && hg pull -u
    1.21 +		cp -a pangolin/web/* $WWW/pangolin.slitaz.org/public_html
    1.22 +		newline ;;
    1.23  	adduser)
    1.24  		[ ! "$2" ] && echo "Missing user name arg" && exit 0
    1.25  		[ ! "$3" ] && echo "Missing password arg" && exit 0
    1.26 -		htpasswd -b $HGUSERS $2 $3 ;;
    1.27 +		htpasswd -b ${HGUSERS} $2 $3 ;;
    1.28  	stats)
    1.29  		# Echo some stats.
    1.30  		newline
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/pangolin/web/HEADER.html	Sun Jan 19 19:34:21 2014 +0100
     2.3 @@ -0,0 +1,252 @@
     2.4 +<!DOCTYPE html>
     2.5 +<html lang="en">
     2.6 +<head>
     2.7 +	<meta charset="utf-8" />
     2.8 +	<title>SliTaz Pizza</title>
     2.9 +<style type="text/css">
    2.10 +<!--
    2.11 +
    2.12 +/* CSS style for SliTaz Pizza */
    2.13 +
    2.14 +html { height: 102%; }
    2.15 +body { font: 13px sans-serif, vernada, arial; margin: 0; }
    2.16 +h1 { margin: 0; padding: 8px; color: #fff; font-size: 20px; }
    2.17 +h1 a { color: #fff; text-decoration: none; }
    2.18 +h2 { color: #444; } h3 { color: #666; font-size: 130%; }
    2.19 +a { text-decoration: underline; color: #215090; }
    2.20 +a:hover { text-decoration: none; }
    2.21 +img { vertical-align: middle; }
    2.22 +h2 img { padding: 0px 6px 6px 0px; }
    2.23 +pre img { margin: 2px 0px; }
    2.24 +
    2.25 +pre {
    2.26 +	background-color: #f8f8f8;
    2.27 +	border: 1px solid #ddd;
    2.28 +	padding: 10px;
    2.29 +	overflow: auto;
    2.30 +	font-size: 98%;
    2.31 +}
    2.32 +table { 
    2.33 +	background-color: #f8f8f8;
    2.34 +	border: 1px solid #ddd; 
    2.35 +	width: 100%; 
    2.36 +	margin: 0px 0px 20px 0px;
    2.37 +	padding: 10px;
    2.38 +}
    2.39 +/* HTML 5 dont allow size="40" but it's buggy on FF
    2.40 + * input[type="file"] { width: 240px; margin: 0 5px; } */
    2.41 +
    2.42 +/* Header */
    2.43 +
    2.44 +#header {
    2.45 +	background: #351a0a;
    2.46 +	height: 40px;
    2.47 +	border-bottom: 8px solid #ffad02;
    2.48 +	/*border-bottom: 8px solid #d66018;*/
    2.49 +}
    2.50 +
    2.51 +#header h1 {
    2.52 +	margin: 0;
    2.53 +	padding: 8px 0 0 42px;
    2.54 +	width: 250px;
    2.55 +}
    2.56 +
    2.57 +#header h1 a { 
    2.58 +	color: white; 
    2.59 +	text-decoration: none;
    2.60 +	font-size: 20px;
    2.61 +	font-style: italic;
    2.62 +}
    2.63 +
    2.64 +#header h1 a:hover { 
    2.65 +	color: #d66018;
    2.66 +}
    2.67 +
    2.68 +/* Logo */
    2.69 +
    2.70 +#logo {
    2.71 +	background: url(/images/logo.png) no-repeat left;
    2.72 +	position: absolute;
    2.73 +	float: left;
    2.74 +	left: 0px;
    2.75 +	top: 0px;
    2.76 +	width: 40px;
    2.77 +	height: 40px;
    2.78 +}
    2.79 +
    2.80 +/* Header links */
    2.81 +
    2.82 +#network { 
    2.83 +	float: right; 
    2.84 +	padding: 12px 5px 0; 
    2.85 +	font-size: 12px;
    2.86 +}
    2.87 +
    2.88 +#network a {
    2.89 +	padding: 0 4px;
    2.90 +	color: #fff; 
    2.91 +	font-weight: bold;
    2.92 +	text-decoration: none;
    2.93 +}
    2.94 +#network a:hover { color: #cfcfcf; }
    2.95 +
    2.96 +/* Notification box */
    2.97 +
    2.98 +#notify {
    2.99 +	/*font-weight: bold;*/
   2.100 +	background-color: #351a0a;
   2.101 +	border: 1px solid #ffad02;
   2.102 +	color: #fff;
   2.103 +	cursor: help;
   2.104 +	position: absolute;
   2.105 +	top: 58px;
   2.106 +	right: 10px;
   2.107 +	width: auto;
   2.108 +	padding: 6px 12px;
   2.109 +}
   2.110 +#notify img { margin-right: 10px; }
   2.111 +
   2.112 +/* Content */
   2.113 +
   2.114 +#content {
   2.115 +	margin: 40px auto;
   2.116 +	text-align: justify;
   2.117 +	width: 740px;
   2.118 +}
   2.119 +
   2.120 +.note { 
   2.121 +	margin: 20px;
   2.122 +	padding: 20px; 
   2.123 +	background-color: #eaeaea;
   2.124 +	border: 2px solid #ccc;
   2.125 +}
   2.126 +
   2.127 +.box { margin: 20px 0; }
   2.128 +.next { float: right; }
   2.129 +
   2.130 +.span-ok { color: green; }
   2.131 +.span-red { color: red; }
   2.132 +.log-date { color: #666; font-size: 95%; }
   2.133 +
   2.134 +#packages {
   2.135 +	width: 100%;
   2.136 +	height: 260px;
   2.137 +	overflow: auto;
   2.138 +	border: 1px solid #ddd;
   2.139 +	background-color: #f8f8f8;
   2.140 +}
   2.141 +
   2.142 +#packages table {
   2.143 +	border: 0px solid #fff;
   2.144 +}
   2.145 +
   2.146 +#pkgs-search {
   2.147 +	width: 100%;
   2.148 +	max-height: 180px;
   2.149 +	overflow: auto;
   2.150 +}
   2.151 +
   2.152 +/* Form */
   2.153 +
   2.154 +form { display: inline; }
   2.155 +input[type="submit"], input[type="text"], textarea, select {
   2.156 +	color: #444444;
   2.157 +	border: 1px solid #cccccc;
   2.158 +	padding: 4px;
   2.159 +	margin: 4px 0px;
   2.160 +	font-size: 14px;
   2.161 +	line-height: 1.2em;
   2.162 +	background-image: -webkit-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5);
   2.163 +	background-image: -moz-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5);
   2.164 +	-webkit-appearance: none;
   2.165 +	-webkit-padding-end: 12px;
   2.166 +	-webkit-padding-start: 6px;
   2.167 +}
   2.168 +
   2.169 +input[type="text"] { background: #fefefe; border: 2px solid #ccc; 
   2.170 +	width: 460px; }
   2.171 +/*input[type="file"] { border: 2px solid #ddd; }*/
   2.172 +/*input[type="checkbox"] { background: #fefefe; }*/
   2.173 +
   2.174 +/* Be compatible with old FF and Webkit version. */
   2.175 +input[type="submit"] {
   2.176 +	-webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
   2.177 +	-moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
   2.178 +	box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
   2.179 +}
   2.180 +
   2.181 +input[type="submit"]:hover { 
   2.182 +	cursor: pointer;
   2.183 +	color: black;
   2.184 +}
   2.185 +
   2.186 +select { 
   2.187 +	background-image: url(images/down.png), 
   2.188 +		-webkit-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5);
   2.189 +	background-position: center right;
   2.190 +	background-repeat: no-repeat;
   2.191 +}
   2.192 +
   2.193 +input[type="file"] { 
   2.194 +	width: 576px; 
   2.195 +	z-index: -1; 
   2.196 +	vertical-align: middle;
   2.197 +	cursor: pointer;
   2.198 +	margin: 0;
   2.199 +}
   2.200 +
   2.201 +.inputhide { overflow: hidden; width: 420px; }
   2.202 +
   2.203 +.inputfile { 
   2.204 +	width: 462px;
   2.205 +	background: #f8f8f8 url(images/open.png) no-repeat center right; 
   2.206 +	z-index: 2;
   2.207 +	border: 1px solid #ccc;
   2.208 +	padding: 3px 0px 0px 2px;
   2.209 +	height: 25px;
   2.210 +	float: left;
   2.211 +	margin-top: 4px;
   2.212 +}
   2.213 +
   2.214 +input[type="file"]::-webkit-file-upload-button {
   2.215 +   float: right;
   2.216 +}
   2.217 +
   2.218 +/* Round corner */
   2.219 +
   2.220 +img, pre, table, input, textarea, select, .note, .box, #notify,
   2.221 +#packages, #pkgs-search, .inputfile {
   2.222 +	-moz-border-radius: 4px;
   2.223 +	-webkit-border-radius: 4px;
   2.224 +	border-radius: 4px;
   2.225 +}
   2.226 +
   2.227 +/* Footer */
   2.228 +
   2.229 +#footer {
   2.230 +	text-align: center;
   2.231 +	margin-top: 80px;
   2.232 +	padding: 20px;
   2.233 +	/*border-top: 1px solid #ddd;*/
   2.234 +	font-size: 90%;
   2.235 +}
   2.236 +
   2.237 +#footer a { padding: 0 2px; }
   2.238 +-->
   2.239 +</style>
   2.240 +</head>
   2.241 +<body>
   2.242 +
   2.243 +<div id="header">
   2.244 +	<div id="logo"></div>
   2.245 +	<div id="network">
   2.246 +		<a href="http://www.slitaz.org/">Home</a>
   2.247 +		<a href="http://scn.slitaz.org/">Community</a>
   2.248 +		<a href="http://forum.slitaz.org/">Forum</a>
   2.249 +		<a href="http://pizza.slitaz.me">Pizza</a>
   2.250 +	</div>
   2.251 +	<h1><a href="/">SliTaz Pangolin</a></h1>
   2.252 +</div>
   2.253 +
   2.254 +<div id="content">
   2.255 +
     3.1 Binary file pangolin/web/favicon.ico has changed
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/pangolin/web/graphs.php	Sun Jan 19 19:34:21 2014 +0100
     4.3 @@ -0,0 +1,134 @@
     4.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     4.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
     4.7 +<head>
     4.8 +	<title>Pangolin RRD stats</title>
     4.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    4.10 +	<meta name="description" content="slitaz pangolin rrdtool graphs" />
    4.11 +	<meta name="robots" content="noindex" />
    4.12 +	<meta name="author" content="SliTaz Contributors" />
    4.13 +	<link rel="shortcut icon" href="favicon.ico" />
    4.14 +	<link rel="stylesheet" type="text/css" href="slitaz.css" />
    4.15 +</head>
    4.16 +<body>
    4.17 +
    4.18 +<!-- Header -->
    4.19 +<div id="header">
    4.20 +	<div id="logo"></div>
    4.21 +	<div id="network">
    4.22 +		<a href="http://www.slitaz.org/">
    4.23 +			<img src="images/network.png" alt="network.png" /></a>
    4.24 +		<a href="http://scn.slitaz.org/">Community</a>
    4.25 +		<a href="http://doc.slitaz.org/">Doc</a>
    4.26 +		<a href="http://forum.slitaz.org/">Forum</a>
    4.27 +		<a href="http://bugs.slitaz.org">Bugs</a>
    4.28 +		<a href="http://hg.slitaz.org/">Hg</a>
    4.29 +	</div>
    4.30 +	<h1><a href="http://www.slitaz.org/">SliTaz Pangolin</a></h1>
    4.31 +</div>
    4.32 +
    4.33 +<!-- Block -->
    4.34 +<div id="block">
    4.35 +	<!-- Navigation -->
    4.36 +	<div id="block_nav">
    4.37 +		<h4><img src="images/development.png" alt="development.png" />Developers Corner</h4>
    4.38 +		<ul>
    4.39 +			<li><a href="http://www.slitaz.org/en/devel/">Website devel</a></li>
    4.40 +			<li><a href="http://scn.slitaz.org/">Community</a></li>
    4.41 +			<li><a href="http://labs.slitaz.org/">Laboratories</a></li>
    4.42 +			<li><a href="http://hg.slitaz.org/">Mercurial Repos</a></li>
    4.43 +			<li><a href="http://cook.slitaz.org/">Build Bot</a></li>
    4.44 +			<li><a href="http://tank.slitaz.org/">Tank Server</a></li>
    4.45 +			<li><a href="http://mirror.slitaz.org/info/">Mirror Server</a></li>
    4.46 +		</ul>
    4.47 +	</div>
    4.48 +	<!-- Information/image -->
    4.49 +	<div id="block_info">
    4.50 +		<h4>Codename: pangolin</h4>
    4.51 +		<p>
    4.52 +			This is the SliTaz GNU/Linux main server and build host. 
    4.53 +			The server runs naturally SliTaz and provides some services
    4.54 +			to all contributors such as: secure access, disk space, a 
    4.55 +			public directory or cron jobs.
    4.56 +		</p>
    4.57 +		<p>
    4.58 +			Pangolin CPU is a <?php system("sed -e '/^model name/!d;s/.*Intel(R) //;" .
    4.59 +			"s/@//;s/(.*)//;s/CPU //;s/.*AMD //;s/.*: //;s/Processor //' </proc/cpuinfo |" .
    4.60 +			" awk '{ s=$0; n++ } END { if (n == 2) printf \"dual \";" .
    4.61 +			"if (n == 4) printf \"quad \"; print s }' ")?> -
    4.62 +			<?php system("free | awk '/Mem:/ { x=2*$2-1; while (x >= 1024) { x /= 1024; ".
    4.63 +			"n++ }; y=1; while (x > 2) { x /= 2; y *= 2}; ".
    4.64 +			"printf \"%d%cB RAM\",y,substr(\"MG\",n,1) }' ")?>
    4.65 +			- Located in Paris, 
    4.66 +			France.
    4.67 +		</p>
    4.68 +	</div>
    4.69 +</div>
    4.70 +
    4.71 +<!-- Content -->
    4.72 +<div id="content">
    4.73 +
    4.74 +<div align="center"> <?php echo date("r"); ?> </div>
    4.75 +<?php
    4.76 +
    4.77 +$myurl="http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
    4.78 +
    4.79 +function one_graphic($img,$name)
    4.80 +{
    4.81 +	echo '<img src="pics/rrd/'.$img.'" title="'.
    4.82 +		$name.'" alt="'.$name.'" />'."\n";
    4.83 +}
    4.84 +
    4.85 +function graphic($res, $img='')
    4.86 +{
    4.87 +	global $myurl;
    4.88 +	if (!$img) $img=$res;
    4.89 +	echo "<a name=\"".$res."\"></a>";
    4.90 +	echo "<a href=\"".$myurl."?stats=".$res."#".$res."\">\n";
    4.91 +	one_graphic($img."-day.png",$res." daily");
    4.92 +	echo "</a>";
    4.93 +	if (isset($_GET['stats']) && $_GET['stats'] == $res) {
    4.94 +		one_graphic($img."-week.png",$res." weekly");
    4.95 +		one_graphic($img."-month.png",$res." monthly");
    4.96 +		one_graphic($img."-year.png",$res." yearly");
    4.97 +	}
    4.98 +}
    4.99 +
   4.100 +echo "<h2>CPU</h2>\n";
   4.101 +graphic("cpu");
   4.102 +echo "<h2>Memory</h2>\n";
   4.103 +graphic("memory");
   4.104 +echo "<h2>Disk</h2>\n";
   4.105 +graphic("disk");
   4.106 +echo "<h2>Network</h2>\n";
   4.107 +$eth = array();
   4.108 +exec("/sbin/route -n | awk '{ if (/^0.0.0.0/) print $8 }'", $eth);
   4.109 +graphic("net",$eth[0]);
   4.110 +
   4.111 +?>
   4.112 +
   4.113 +<!-- End of content -->
   4.114 +</div>
   4.115 +
   4.116 +<!-- Footer -->
   4.117 +<div id="footer">
   4.118 +	Copyright &copy; <span class="year"></span>
   4.119 +	<a href="http://www.slitaz.org/">SliTaz</a> - Network:
   4.120 +	<a href="http://scn.slitaz.org/">Community</a>
   4.121 +	<a href="http://doc.slitaz.org/">Doc</a>
   4.122 +	<a href="http://forum.slitaz.org/">Forum</a>
   4.123 +	<a href="http://pkgs.slitaz.org/">Packages</a>
   4.124 +	<a href="http://bugs.slitaz.org">Bugs</a>
   4.125 +	<a href="http://hg.slitaz.org/">Hg</a>
   4.126 +	<p>
   4.127 +		SliTaz @
   4.128 +		<a href="http://twitter.com/slitaz">Twitter</a>
   4.129 +		<a href="http://www.facebook.com/slitaz">Facebook</a>
   4.130 +		<a href="http://distrowatch.com/slitaz">Distrowatch</a>
   4.131 +		<a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a>
   4.132 +		<a href="http://flattr.com/profile/slitaz">Flattr</a>
   4.133 +	</p>
   4.134 +</div>
   4.135 +
   4.136 +</body>
   4.137 +</html>
     5.1 Binary file pangolin/web/images/archive.png has changed
     6.1 Binary file pangolin/web/images/development.png has changed
     7.1 Binary file pangolin/web/images/down.png has changed
     8.1 Binary file pangolin/web/images/download.png has changed
     9.1 Binary file pangolin/web/images/info.png has changed
    10.1 Binary file pangolin/web/images/iso.png has changed
    11.1 Binary file pangolin/web/images/logo.png has changed
    12.1 Binary file pangolin/web/images/monitor.png has changed
    13.1 Binary file pangolin/web/images/network.png has changed
    14.1 Binary file pangolin/web/images/open.png has changed
    15.1 Binary file pangolin/web/images/paypal.png has changed
    16.1 Binary file pangolin/web/images/slitaz-doc.png has changed
    17.1 Binary file pangolin/web/images/tazpkg.png has changed
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/pangolin/web/index.php	Sun Jan 19 19:34:21 2014 +0100
    18.3 @@ -0,0 +1,305 @@
    18.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    18.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    18.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    18.7 +<head>
    18.8 +	<title>SliTaz Pangolin</title>
    18.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   18.10 +	<meta name="description" content="slitaz pangolin server" />
   18.11 +	<meta name="robots" content="index, nofollow" />
   18.12 +	<meta name="author" content="SliTaz Contributors" />
   18.13 +	<link rel="shortcut icon" href="favicon.ico" />
   18.14 +	<link rel="stylesheet" type="text/css" href="slitaz.css" />
   18.15 +</head>
   18.16 +<body>
   18.17 +
   18.18 +<!-- Header -->
   18.19 +<div id="header">
   18.20 +	<div id="logo"></div>
   18.21 +	<div id="network">
   18.22 +		<a href="http://www.slitaz.org/">Home</a>
   18.23 +		<a href="http://scn.slitaz.org/">Community</a>
   18.24 +		<a href="http://doc.slitaz.org/">Doc</a>
   18.25 +		<a href="http://forum.slitaz.org/">Forum</a>
   18.26 +		<a href="http://irc.slitaz.org/">IRC</a>
   18.27 +		<a href="http://slitaz.pro/">Pro</a>
   18.28 +		<a href="http://shop.slitaz.org/">Shop</a>
   18.29 +		<a href="http://bugs.slitaz.org">Bugs</a>
   18.30 +		<a href="http://hg.slitaz.org/?sort=lastchange">Hg</a>
   18.31 +	</div>
   18.32 +	<h1><a href="http://www.slitaz.org/">SliTaz Pangolin</a></h1>
   18.33 +</div>
   18.34 +
   18.35 +<!-- Block -->
   18.36 +<div id="block">
   18.37 +	<!-- Navigation -->
   18.38 +	<div id="block_nav">
   18.39 +		<h4><img src="images/development.png" alt="development.png" />Developers Corner</h4>
   18.40 +		<div class="right_box">
   18.41 +			<ul>
   18.42 +				<li><a href="http://tank.slitaz.org/">Tank Server</a></li>
   18.43 +				<li><a href="http://mirror.slitaz.org/">Main Mirror</a></li>
   18.44 +			</ul>
   18.45 +		</div>
   18.46 +		<div class="left_box">
   18.47 +			<ul>
   18.48 +				<li><a href="http://www.slitaz.org/en/devel/">Devel Doc</a></li>
   18.49 +				<li><a href="http://people.slitaz.org/">SliTaz People</a></li>
   18.50 +				<li><a href="http://cook.slitaz.org/">Cooker</a></li>
   18.51 +				<li><a href="http://pizza.slitaz.me/">Pizza Builder</a></li>
   18.52 +			</ul>
   18.53 +		</div>
   18.54 +	</div>
   18.55 +	<!-- Information/image -->
   18.56 +	<div id="block_info">
   18.57 +		<h4>Codename: pangolin - Maintainer: erjo</h4>
   18.58 +		<p>
   18.59 +			This is the SliTaz GNU/Linux main server and build host. 
   18.60 +			The server runs naturally SliTaz and provides some services
   18.61 +			to all contributors.
   18.62 +		</p>
   18.63 +		<p>
   18.64 +			Pangolin CPU is a <?php system("sed -e '/^model name/!d;s/.*Intel(R) //;" .
   18.65 +			"s/@//;s/(.*)//;s/CPU //;s/.*AMD //;s/.*: //;s/Processor //' </proc/cpuinfo |" .
   18.66 +			" awk '{ s=$0; n++ } END { if (n == 2) printf \"dual \";" .
   18.67 +			"if (n == 4) printf \"quad \"; print s }' ")?> -
   18.68 +			<?php system("free | awk '/Mem:/ { x=2*$2-1; while (x >= 1024) { x /= 1024; ".
   18.69 +			"n++ }; y=1; while (x > 2) { x /= 2; y *= 2}; ".
   18.70 +			"printf \"%d%cB RAM\",y,substr(\"MG\",n,1) }' ")?>
   18.71 +			- Located in Paris, 
   18.72 +			France. Pangolin is also monitored by RRDtool which provides 
   18.73 +			<a href="graphs.php">graphical stats</a>.
   18.74 +		</p>
   18.75 +	</div>
   18.76 +</div>
   18.77 +
   18.78 +<!-- Content -->
   18.79 +<div id="content">
   18.80 +
   18.81 +<h2><a href="graphs.php"><img 
   18.82 +	style="vertical-align: middle; padding: 0 4px 4px 0;"
   18.83 +	title="Pangolin RRDtool graphs" alt="graphs"
   18.84 +    src="images/monitor.png" /></a>System stats</h2>
   18.85 +
   18.86 +<h4>Uptime</h4>
   18.87 +
   18.88 +<pre class="package">
   18.89 +<?php
   18.90 +system("uptime | sed 's/^\s*//'");
   18.91 +?>
   18.92 +</pre>
   18.93 +
   18.94 +<h4>Disk usage</h4>
   18.95 +<pre class="package">
   18.96 +<?php
   18.97 +system("df -h | sed '/^rootfs/d' | grep  '\(^/dev\|Filesystem\)'");
   18.98 +?>
   18.99 +</pre>
  18.100 +
  18.101 +<h4>Network</h4>
  18.102 +<pre class="package">
  18.103 +<?php
  18.104 +system("ifconfig eth0 | awk '{ if (/X packet/ || /X byte/) print }' | sed 's/^\s*//'");
  18.105 +?>
  18.106 +</pre>
  18.107 +
  18.108 +<h2><a href="/stats/awstats.pl?config=www.slitaz.org"><img
  18.109 +	style="vertical-align: middle; padding: 0 4px 4px 0;"
  18.110 +	title="Pangolin Virtual hosts" alt="vhosts"
  18.111 +    src="images/network.png" /></a>Virtual hosts</h2>
  18.112 +
  18.113 +<ul>
  18.114 +	<li><a href="http://www.slitaz.org/">www.slitaz.org</a> - SliTaz Website.
  18.115 +	(<a href="/stats/awstats.pl?config=www.slitaz.org">stats</a>)</li>
  18.116 +	<li><a href="http://doc.slitaz.org/">doc.slitaz.org</a> - Documentation platform.</li>
  18.117 +	<li><a href="http://forum.slitaz.org/">forum.slitaz.org</a> - SliTaz support forum.</li>
  18.118 +	<li><a href="http://vanilla.slitaz.org/">vanilla.slitaz.org</a> - previous SliTaz forum.</li>
  18.119 +	<li><a href="http://hg.slitaz.org/">hg.slitaz.org</a> - Mercurial repositories.</li>
  18.120 +	<li><a href="http://pizza.slitaz.me/">pizza.slitaz.me</a> - SliTaz flavor builder.</li>
  18.121 +	<li><a href="http://scn.slitaz.org/">scn.slitaz.org</a> - Community platform.</li>
  18.122 +</ul>
  18.123 +
  18.124 +<h2><img
  18.125 +	style="vertical-align: middle; padding: 0 4px 4px 0;"
  18.126 +	title="Erjo Virtual hosts" alt="vhosts"
  18.127 +    src="images/network.png" />Other hosts</h2>
  18.128 +
  18.129 +<p>
  18.130 +	These services are hosted by some individual sponsors who gracefully offer
  18.131 +	resources to the SliTaz project.
  18.132 +</p>
  18.133 +<ul>
  18.134 +	<li><a href="http://mirror.slitaz.org/">mirror.slitaz.org</a> - SliTaz main mirror and replicas.
  18.135 +		(<a href="http://mirror.slitaz.org/info/">more...</a>)</li>
  18.136 +	<li><a href="http://pkgs.slitaz.org/">pkgs.slitaz.org</a> - Packages Web interface.</li>
  18.137 +	<li><a href="http://tiny.slitaz.org/">tiny.slitaz.org</a> - Tiny SliTaz builder.</li>
  18.138 +	<!-- ajaxterm archives console-mirror demo dvd floppy ssh usbkey -->
  18.139 +	<li><a href="http://boot.slitaz.org/">boot.slitaz.org</a> - gPXE Web boot.</li>
  18.140 +	<li><a href="http://cook.slitaz.org/">cook.slitaz.org</a> - SliTaz Build Bot.</li>
  18.141 +	<li><a href="http://people.slitaz.org/">people.slitaz.org</a> - SliTaz People stuff.</li>
  18.142 +	<li><a href="http://slitaz.pro/">slitaz.pro</a> - SliTaz Professional services.</li>
  18.143 +	<!-- bb cloud ssfs stats store tank -->
  18.144 +</ul>
  18.145 +    
  18.146 +<a name="mirrors"></a>
  18.147 +<h2><a href="http://mirror.slitaz.org/info/"> <img
  18.148 +	style="vertical-align: middle; padding: 0 4px 4px 0;"
  18.149 +	src="images/network.png"
  18.150 +	title="Secondary mirrors" alt="mirrors" /></a>Mirrors</h2>
  18.151 +	Most mirrors are updated using the url: <b>rsync://mirror.slitaz.org/slitaz/</b>
  18.152 +	(<a href="http://mirror.slitaz.org/awstats.pl?config=rsync">stats</a>)
  18.153 +	<pre>
  18.154 +rsync -azH --delete rsync://mirror.slitaz.org/slitaz/ /local/slitaz/mirror/ </pre>
  18.155 +	New mirrors should be announced on the 
  18.156 +	<a href="http://www.slitaz.org/en/mailing-list.html">mailing list</a>.
  18.157 +<ul>
  18.158 +<?php
  18.159 +$output_url_file="";
  18.160 +$output_url_handler;
  18.161 +$mirrors_url_file="./mirrors";
  18.162 +
  18.163 +function test_url($link, $proto)
  18.164 +{
  18.165 +	global $output_url_file;
  18.166 +	global $mirrors_url_file;
  18.167 +	global $output_url_handler;
  18.168 +	
  18.169 +	if ($output_url_file != "") {
  18.170 +		switch($proto) {
  18.171 +		case "http" :
  18.172 +		case "ftp" :
  18.173 +			$cmd = "busybox wget -s $link/README" ;
  18.174 +			break;
  18.175 +		case "rsync" :
  18.176 +			$cmd = "rsync $link > /dev/null 2>&1" ;
  18.177 +			break;
  18.178 +		default :
  18.179 +			return FALSE;
  18.180 +		}
  18.181 +		if (shell_exec("$cmd && echo -n OK") == "OK") {
  18.182 +			fwrite($output_url_handler,$link."\n");
  18.183 +			return TRUE;
  18.184 +		} 
  18.185 +		return FALSE;
  18.186 +	}
  18.187 +	return shell_exec("grep -qs ^$link$ $mirrors_url_file && echo -n OK") == "OK"; 
  18.188 +}
  18.189 +
  18.190 +if (! file_exists($mirrors_url_file)) {
  18.191 +	$output_url_file = tempnam('/tmp','mkmirrors');
  18.192 +	$output_url_handler = fopen($output_url_file, "w");
  18.193 +	fwrite($output_url_handler,"http://mirror.slitaz.org/\n");
  18.194 +	fwrite($output_url_handler,"rsync://mirror.slitaz.org/\n");
  18.195 +}
  18.196 +
  18.197 +# Flags icons from http://www.famfamfam.com/lab/icons/flags/famfamfam_flag_icons.zip
  18.198 +foreach (array(
  18.199 +	array(	"flag"  => "ch",
  18.200 +		"http"  => "http://mirror.switch.ch/ftp/mirror/slitaz/",
  18.201 +		"ftp"   => "ftp://mirror.switch.ch/mirror/slitaz/"),
  18.202 +	array(	"flag"  => "us",
  18.203 +		"http"  => "http://www.gtlib.gatech.edu/pub/slitaz/",
  18.204 +		"ftp"   => "ftp://ftp.gtlib.gatech.edu/pub/slitaz/",
  18.205 +		"rsync" => "rsync://www.gtlib.gatech.edu/slitaz/"),
  18.206 +	array(	"flag"  => "fr",
  18.207 +		"http"  => "http://download.tuxfamily.org/slitaz/",
  18.208 +		"ftp"   => "ftp://download.tuxfamily.org/slitaz/",
  18.209 +		"rsync" => "rsync://download.tuxfamily.org/pub/slitaz/"),
  18.210 +	array(	"flag"  => "fr",
  18.211 +		"http"  => "http://www.linuxembarque.com/slitaz/mirror/"),
  18.212 +	array(	"flag"  => "cn",
  18.213 +		"http"  => "http://mirror.lupaworld.com/slitaz/"),
  18.214 +	array(	"flag"  => "cn",
  18.215 +		"http"  => "http://ks.lupaworld.com/slitaz/"),
  18.216 +	array(	"flag"  => "br",
  18.217 +		"http"  => "http://slitaz.c3sl.ufpr.br/",
  18.218 +		"ftp"   => "ftp://slitaz.c3sl.ufpr.br/slitaz/",
  18.219 +		"rsync" => "rsync://slitaz.c3sl.ufpr.br/slitaz/"),
  18.220 +	array(	"flag"  => "it",
  18.221 +		"http"  => "http://slitaz.mirror.garr.it/mirrors/slitaz/",
  18.222 +		"ftp"   => "ftp://slitaz.mirror.garr.it/mirrors/slitaz/",
  18.223 +		"rsync" => "rsync://slitaz.mirror.garr.it/mirrors/slitaz/"),
  18.224 +	array(	"flag"  => "si",
  18.225 +		"http"  => "http://mirror.drustvo-dns.si/slitaz/"),
  18.226 +	array(	"flag"  => "si",
  18.227 +		"ftp"   => "ftp://ftp.pina.si/slitaz/"),
  18.228 +	array(	"flag"  => "us",
  18.229 +		"http"  => "http://distro.ibiblio.org/pub/linux/distributions/slitaz/",
  18.230 +		"ftp"   => "ftp://distro.ibiblio.org/pub/linux/distributions/slitaz/"),
  18.231 +	array(	"flag"  => "nl",
  18.232 +		"http"  => "http://ftp.vim.org/ftp/os/Linux/distr/slitaz/",
  18.233 +		"ftp"   => "ftp://ftp.vim.org/mirror/os/Linux/distr/slitaz/"),
  18.234 +	array(	"flag"  => "nl",
  18.235 +		"http"  => "http://ftp.nedit.org/ftp/ftp/pub/os/Linux/distr/slitaz/",
  18.236 +		"ftp"   => "ftp://ftp.nedit.org/ftp/ftp/pub/os/Linux/distr/slitaz/"),
  18.237 +	array(	"flag"  => "ch",
  18.238 +		"http"  => "http://ftp.ch.xemacs.org/ftp/pool/2/mirror/slitaz/",
  18.239 +		"ftp"   => "ftp://ftp.ch.xemacs.org//pool/2/mirror/slitaz/"),
  18.240 +	array(	"flag"  => "de",
  18.241 +		"http"  => "http://ftp.uni-stuttgart.de/slitaz/",
  18.242 +		"ftp"   => "ftp://ftp.uni-stuttgart.de/slitaz/"),
  18.243 +	array(	"flag"  => "ro",
  18.244 +		"http"  => "http://ftp.info.uvt.ro/pub/slitaz/",
  18.245 +		"ftp"   => "ftp://ftp.info.uvt.ro/pub/slitaz/",
  18.246 +		"rsync" => "rsync://ftp.info.uvt.ro/ftp/pub/slitaz/"),
  18.247 +	array(	"flag"  => "au",
  18.248 +		"http"  => "http://mirror.iprimus.com/slitaz/"),
  18.249 +	array(	"flag"  => "au",
  18.250 +		"http"  => "http://mirror01.ipgn.com.au/slitaz/"),
  18.251 +	array(	"flag"  => "us",
  18.252 +		"http"  => "http://mirror.clarkson.edu/slitaz/",
  18.253 +		"rsync" => "rsync://mirror.clarkson.edu/slitaz/")) as $mirror) {
  18.254 +	$flag = "pics/website/".$mirror["flag"].".png";
  18.255 +	$head = TRUE;
  18.256 +	foreach(array("http", "ftp", "rsync") as $proto) {
  18.257 +		if (!isset($mirror[$proto])) continue;
  18.258 +		$link = $mirror[$proto];
  18.259 +		if (!test_url($link, $proto)) continue;
  18.260 +		$serveur = parse_url($link, PHP_URL_HOST);
  18.261 +		if ($head) echo <<<EOT
  18.262 +	<li><a href="http://en.utrace.de/?query=$serveur">
  18.263 +		<img title="map" src="$flag" alt="map" /></a>
  18.264 +		<a href="$link">$link</a>
  18.265 +EOT;
  18.266 +		else echo <<<EOT
  18.267 +		or <a href="$link">$proto</a>
  18.268 +EOT;
  18.269 +		$head = FALSE;
  18.270 +	}
  18.271 +	if ($head) continue;
  18.272 +	echo "	</li>\n";
  18.273 +}
  18.274 +
  18.275 +if ($output_url_file != "") {
  18.276 +	fclose($output_url_handler);
  18.277 +	rename($output_url_file, $mirrors_url_file);
  18.278 +	chmod($mirrors_url_file, 0644);
  18.279 +}
  18.280 +
  18.281 +?>
  18.282 +</ul>
  18.283 +
  18.284 +<!-- End of content -->
  18.285 +</div>
  18.286 +
  18.287 +<!-- Footer -->
  18.288 +<div id="footer">
  18.289 +	Copyright &copy; <span class="year"></span>
  18.290 +	<a href="http://www.slitaz.org/">SliTaz</a> - Network:
  18.291 +	<a href="http://scn.slitaz.org/">Community</a>
  18.292 +	<a href="http://doc.slitaz.org/">Doc</a>
  18.293 +	<a href="http://forum.slitaz.org/">Forum</a>
  18.294 +	<a href="http://pkgs.slitaz.org/">Packages</a>
  18.295 +	<a href="http://bugs.slitaz.org">Bugs</a>
  18.296 +	<a href="http://hg.slitaz.org/">Hg</a>
  18.297 +	<p>
  18.298 +		SliTaz @
  18.299 +		<a href="http://twitter.com/slitaz">Twitter</a>
  18.300 +		<a href="http://www.facebook.com/slitaz">Facebook</a>
  18.301 +		<a href="http://distrowatch.com/slitaz">Distrowatch</a>
  18.302 +		<a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a>
  18.303 +		<a href="http://flattr.com/profile/slitaz">Flattr</a>
  18.304 +	</p>
  18.305 +</div>
  18.306 +
  18.307 +</body>
  18.308 +</html>
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/pangolin/web/mirrors	Sun Jan 19 19:34:21 2014 +0100
    19.3 @@ -0,0 +1,28 @@
    19.4 +http://mirror.slitaz.org/
    19.5 +rsync://mirror.slitaz.org/
    19.6 +http://mirror.switch.ch/ftp/mirror/slitaz/
    19.7 +ftp://mirror.switch.ch/mirror/slitaz/
    19.8 +http://www.gtlib.gatech.edu/pub/slitaz/
    19.9 +ftp://ftp.gtlib.gatech.edu/pub/slitaz/
   19.10 +http://download.tuxfamily.org/slitaz/
   19.11 +ftp://download.tuxfamily.org/slitaz/
   19.12 +rsync://download.tuxfamily.org/pub/slitaz/
   19.13 +http://slitaz.c3sl.ufpr.br/
   19.14 +ftp://slitaz.c3sl.ufpr.br/slitaz/
   19.15 +rsync://slitaz.c3sl.ufpr.br/slitaz/
   19.16 +http://slitaz.mirror.garr.it/mirrors/slitaz/
   19.17 +ftp://slitaz.mirror.garr.it/mirrors/slitaz/
   19.18 +http://distro.ibiblio.org/pub/linux/distributions/slitaz/
   19.19 +ftp://distro.ibiblio.org/pub/linux/distributions/slitaz/
   19.20 +http://ftp.vim.org/ftp/os/Linux/distr/slitaz/
   19.21 +ftp://ftp.vim.org/mirror/os/Linux/distr/slitaz/
   19.22 +http://ftp.nedit.org/ftp/ftp/pub/os/Linux/distr/slitaz/
   19.23 +ftp://ftp.nedit.org/ftp/ftp/pub/os/Linux/distr/slitaz/
   19.24 +http://ftp.ch.xemacs.org/ftp/pool/2/mirror/slitaz/
   19.25 +ftp://ftp.ch.xemacs.org//pool/2/mirror/slitaz/
   19.26 +http://ftp.uni-stuttgart.de/slitaz/
   19.27 +ftp://ftp.uni-stuttgart.de/slitaz/
   19.28 +http://ftp.info.uvt.ro/pub/slitaz/
   19.29 +ftp://ftp.info.uvt.ro/pub/slitaz/
   19.30 +http://mirror01.ipgn.com.au/slitaz/
   19.31 +http://mirror.clarkson.edu/slitaz/
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/pangolin/web/robots.txt	Sun Jan 19 19:34:21 2014 +0100
    20.3 @@ -0,0 +1,4 @@
    20.4 +User-agent: *
    20.5 +Disallow: /lib/
    20.6 +Disallow: /README
    20.7 +Disallow: 
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/pangolin/web/slitaz.css	Sun Jan 19 19:34:21 2014 +0100
    21.3 @@ -0,0 +1,374 @@
    21.4 +/*
    21.5 +	CSS style for SliTaz Network - (C) 2014 SliTaz GNU/Linux
    21.6 +*/
    21.7 +
    21.8 +html {
    21.9 +	min-height:  102%;
   21.10 +}
   21.11 +
   21.12 +body {
   21.13 +	background: #ffffff;
   21.14 +	color: black;
   21.15 +	font: 13px sans-serif, vernada, arial;
   21.16 +	margin: 0;
   21.17 +	min-width: 780px;
   21.18 +	height: 100%;
   21.19 +}
   21.20 +
   21.21 +a { text-decoration: underline; color: #215090; }
   21.22 +a:hover { text-decoration: none; color: blue; }
   21.23 +img { border: 0pt none; vertical-align: middle; }
   21.24 +h2 { color: #444; }
   21.25 +h3 { color: #666; font-size: 140%; }
   21.26 +h4 { color: #888; font-size: 120%; }
   21.27 +pre { 
   21.28 +	background-color: #f8f8f8; 
   21.29 +	border: 1px solid #ddd; 
   21.30 +	padding: 10px;
   21.31 +}
   21.32 +
   21.33 +/* Header */
   21.34 +
   21.35 +#header { 
   21.36 +	height: 40px; 
   21.37 +	background: #222;
   21.38 +}
   21.39 +
   21.40 +#header h1 {
   21.41 +	margin: 0;
   21.42 +	padding: 8px 0 0 42px;
   21.43 +	width: 250px;
   21.44 +}
   21.45 +
   21.46 +#header h1 a { 
   21.47 +	color: white; 
   21.48 +	text-decoration: none;
   21.49 +	font-size: 20px;
   21.50 +	font-style: italic;
   21.51 +}
   21.52 +
   21.53 +#header h1 a:hover, #network a:hover, #network span { 
   21.54 +	color: #afafaf;
   21.55 +}
   21.56 +
   21.57 +/* Logo */
   21.58 +
   21.59 +#logo {
   21.60 +	background: url(images/logo.png) no-repeat left;
   21.61 +	position: absolute;
   21.62 +	float: left;
   21.63 +	left: 0px;
   21.64 +	top: 0px;
   21.65 +	width: 40px;
   21.66 +	height: 40px;
   21.67 +}
   21.68 +
   21.69 +/* SliTaz Network */
   21.70 +
   21.71 +#network { 
   21.72 +	float: right; 
   21.73 +	padding: 14px 5px 0; 
   21.74 +	font-size: 12px;
   21.75 +}
   21.76 +
   21.77 +#network a, #network span { padding: 0 4px; }
   21.78 +#network span { font-weight: bold; }
   21.79 +
   21.80 +/* Block */
   21.81 +
   21.82 +#block { 
   21.83 +	min-height: 180px; 
   21.84 +	background: #ccc; 
   21.85 +	padding: 20px 10% 0px;
   21.86 +	text-align: center;
   21.87 +	color: #222;
   21.88 +	border-bottom: 1px solid #afafaf;
   21.89 +}
   21.90 +
   21.91 +#block_info {
   21.92 +	text-align: justify; 
   21.93 +	width: 48%;
   21.94 +	padding: 10px 10px 0 0;
   21.95 +}
   21.96 +
   21.97 +#block a, #network a { 
   21.98 +	color: #fff;
   21.99 +	font-weight: bold;
  21.100 +	text-decoration: none;
  21.101 +}
  21.102 +
  21.103 +#block h4 {
  21.104 +	color: #222;
  21.105 +	margin: 0px;
  21.106 +	font-weight: bold;
  21.107 +	font-size: 110%;
  21.108 +}
  21.109 +
  21.110 +#block_info p { margin: 6px 0; padding: 0 12px 0 0; }
  21.111 +#block_info a { font-weight: normal; color: #215090; }
  21.112 +#block_info a:hover { text-decoration: underline; }
  21.113 +#block ul { list-style-type: square; }
  21.114 +#block_nav a:hover { color: #afafaf; }
  21.115 +
  21.116 +/* Navigation */
  21.117 +
  21.118 +#block_nav {
  21.119 +	background: #666;
  21.120 +	padding: 10px 10px 20px;
  21.121 +	text-align: justify;
  21.122 +	width: 48%;
  21.123 +	float: right;
  21.124 +}
  21.125 +
  21.126 +#block_nav ul { 
  21.127 +	list-style-type: none; 
  21.128 +	margin: 6px 0; 
  21.129 +	padding: 0;
  21.130 +}
  21.131 +
  21.132 +#block_nav h4 img { 
  21.133 +	margin: 0 4px 0 0; 
  21.134 +	padding: 0;
  21.135 +}
  21.136 +
  21.137 +/* Languages */
  21.138 +
  21.139 +#lang {
  21.140 +	padding: 6px;
  21.141 +	font-size: 11px;
  21.142 +	position: absolute;
  21.143 +	right: 0px;
  21.144 +}
  21.145 +
  21.146 +#lang a {
  21.147 +	text-decoration: none;
  21.148 +	padding: 0 2px;
  21.149 +}
  21.150 +
  21.151 +#lang a:hover {
  21.152 +	text-decoration: underline;
  21.153 +}
  21.154 +
  21.155 +.box #lang { text-align: center; position: relative; 
  21.156 +	font-size: 13px; }	 /* for /i18n page */
  21.157 +
  21.158 +/* Content */
  21.159 +
  21.160 +#content {
  21.161 +	padding: 30px 80px;
  21.162 +	text-align: justify;
  21.163 +}
  21.164 +
  21.165 +.news li {
  21.166 +	list-style-type: square;
  21.167 +	border-bottom: 1px dotted #BEBEBE;
  21.168 +	margin-left: -25px;
  21.169 +	padding: 4px 0px 4px 0px;
  21.170 +}
  21.171 +
  21.172 +.news a, .feed-grid a { text-decoration: none; }
  21.173 +.news p a { text-decoration: underline; }
  21.174 +.news p a:hover { text-decoration: none; }
  21.175 +#twitter { margin: 20px 0; text-align: center; }
  21.176 +#gallery { text-align: center; }
  21.177 +
  21.178 +#sponsor {
  21.179 +	font-size: 90%;
  21.180 +	background-color: #fbfbfb;
  21.181 +	border: 2px solid #ddd;
  21.182 +	width: 200px;
  21.183 +	height: 160px;
  21.184 +	float: right;
  21.185 +	text-align: center;
  21.186 +	margin: 10px 0px 20px 20px;
  21.187 +}
  21.188 +
  21.189 +/* Classes */
  21.190 +
  21.191 +.right_box { width: 48%; float: right; }
  21.192 +.left_box { width: 48%; float: left; }
  21.193 +
  21.194 +.box {
  21.195 +	margin: 20px 60px;
  21.196 +	padding: 12px;
  21.197 +	background: #efefef;
  21.198 +	border: 1px solid #ddd;
  21.199 +}
  21.200 +
  21.201 +.box-dl, .box-up {
  21.202 +	margin: 20px 60px;
  21.203 +	padding: 12px 12px 12px 66px;
  21.204 +	min-height: 48px;
  21.205 +	border: 1px solid #ddd;
  21.206 +	vertical-align: middle;
  21.207 +}
  21.208 +.box-dl {
  21.209 +	background: url("/images/download.png") no-repeat 12px 12px #efefef;
  21.210 +}
  21.211 +.box-up {
  21.212 +	background: url("/images/update.png") no-repeat  center left #efefef;
  21.213 +}
  21.214 +.box-dl p { color: #456; }
  21.215 +
  21.216 +.searchbox { 
  21.217 +	margin: 20px 80px; 
  21.218 +	padding: 12px; 
  21.219 +	background: #f8f8f8;
  21.220 +	text-align: center;
  21.221 +	border: 1px solid #ddd;
  21.222 +}
  21.223 +
  21.224 +/* Activity Box */
  21.225 +
  21.226 +.activity { 
  21.227 +	margin: 0 0 20px; 
  21.228 +	background: #efefef; 
  21.229 +	padding: 5px 2px 0; 
  21.230 +	border: 1px solid #ddd; 
  21.231 +}
  21.232 +.activity div { padding: 5px 10px; background: #fff; margin-top: 5px; }
  21.233 +.activity p { margin: 0; padding: 5px 10px; font-weight: bold; }
  21.234 +.activity a { text-decoration: none; }
  21.235 +.activity ul { list-style-type: none; 
  21.236 +	margin: 4px 0; padding: 0 4px; line-height: 150%; }
  21.237 +.activity_more { text-align: right;  }
  21.238 +.activity_more a { font-weight: normal; color: #000; padding: 0 4px; }
  21.239 +.activity_more a:hover { text-decoration: underline; }
  21.240 +
  21.241 +.activity span, .news span { 
  21.242 +	color: #666; 
  21.243 +	font-size: 11px; 
  21.244 +	font-weight: normal;
  21.245 +}
  21.246 +
  21.247 +/* Button */
  21.248 +
  21.249 +#block_info .button a { 
  21.250 +	background-color: #666;
  21.251 +	color: #ffffff;
  21.252 +	margin: 0px 4px;
  21.253 +	padding: 6px 10px;
  21.254 +	font-size: 12px;
  21.255 +	text-decoration: none;
  21.256 +	font-weight: bold;
  21.257 +}
  21.258 +#block_info .button a:hover, input[type=submit]:hover { 
  21.259 +	background-color: #444;
  21.260 +	color: #ffffff;
  21.261 +}
  21.262 +
  21.263 +/* Round corner */
  21.264 +
  21.265 +#block_nav, pre, .box, .box-dl, .box-up, .searchbox, .button a, #twitter, .activity,
  21.266 +.activity div, #sponsor {
  21.267 +	-moz-border-radius: 4px;
  21.268 +	-webkit-border-radius: 4px;
  21.269 +	border-radius: 4px;
  21.270 +}
  21.271 +
  21.272 +/* Form */
  21.273 +
  21.274 +input[type=submit] {
  21.275 +	border: 1px solid #666;
  21.276 +	background-color: #666;
  21.277 +	color: white;
  21.278 +	font-weight: bold;
  21.279 +	cursor: pointer;
  21.280 +	padding: 4px 10px;
  21.281 +	font-size: 14px;
  21.282 +	margin-left: -5px;
  21.283 +	-webkit-border-top-right-radius: 4px;
  21.284 +	-webkit-border-bottom-right-radius: 4px;
  21.285 +	-moz-border-radius-topright: 4px;
  21.286 +	-moz-border-radius-bottomright: 4px;
  21.287 +	border-top-right-radius: 4px;
  21.288 +	border-bottom-right-radius: 4px;
  21.289 +}
  21.290 +
  21.291 +input[type=submit]:hover { background-color: #444; }
  21.292 +
  21.293 +input[type=text] {
  21.294 +	border: 1px solid #333333;
  21.295 +	padding: 4px;
  21.296 +	height: 17px;
  21.297 +	width: 100%;
  21.298 +	-webkit-border-top-left-radius: 4px;
  21.299 +	-webkit-border-bottom-left-radius: 4px;
  21.300 +	-moz-border-radius-topleft: 4px;
  21.301 +	-moz-border-radius-bottomleft: 4px;
  21.302 +	border-top-left-radius: 4px;
  21.303 +	border-bottom-left-radius: 4px;
  21.304 +}
  21.305 +
  21.306 +/* Footer */
  21.307 +
  21.308 +#footer {
  21.309 +	background: #f1f1f1;
  21.310 +	text-align: center;
  21.311 +	border-top: 1px solid #ddd;
  21.312 +	padding: 40px;
  21.313 +	color: #666;
  21.314 +	clear: both;
  21.315 +	margin-bottom: -2%;
  21.316 +}
  21.317 +
  21.318 +#footer a { color: #666; padding: 0 2px; }
  21.319 +
  21.320 +.year:after {
  21.321 +	/* content: "2007-2014"; */
  21.322 +	content: "2014";
  21.323 +}
  21.324 +
  21.325 +p, li {
  21.326 +	-moz-hyphens: auto;
  21.327 +	-webkit-hyphens: auto;
  21.328 +	hyphens: auto;
  21.329 +}
  21.330 +
  21.331 +
  21.332 +/* --- SEARCH --- */
  21.333 +
  21.334 +input.gsc-search-button {
  21.335 +	border: 1px solid #b64b22;
  21.336 +	background-color: #b64b22;
  21.337 +	color: white;
  21.338 +	font-weight: bold;
  21.339 +	cursor: pointer;
  21.340 +	padding: 2px 10px;
  21.341 +	font-size: 14px;
  21.342 +	margin-left: -4px;
  21.343 +	-webkit-border-top-right-radius: 4px;
  21.344 +	-webkit-border-bottom-right-radius: 4px;
  21.345 +	-moz-border-radius-topright: 4px;
  21.346 +	-moz-border-radius-bottomright: 4px;
  21.347 +	border-top-right-radius: 4px;
  21.348 +	border-bottom-right-radius: 4px;
  21.349 +}
  21.350 +
  21.351 +.gs-webResult.gs-result a.gs-title:link,
  21.352 +.gs-webResult.gs-result a.gs-title:link b {
  21.353 +	color: #103a5e;
  21.354 +}
  21.355 +
  21.356 +#cse {
  21.357 +	margin-bottom: 120px;
  21.358 +	width:100%;
  21.359 +}
  21.360 +
  21.361 +
  21.362 +/* --- GALLERY --- */
  21.363 +
  21.364 +#gallery div {
  21.365 +	width: 496px;
  21.366 +	border: none;
  21.367 +	border-radius: 12px;
  21.368 +	padding-bottom: 8px;
  21.369 +	margin: 12px auto;
  21.370 +	webkit-box-shadow: 0 0 6px rgba(0,0,0,0.5);
  21.371 +	-moz-box-shadow: 0 0 6px rgba(0,0,0,0.5);
  21.372 +	box-shadow: 0 0 6px rgba(0,0,0,0.5);
  21.373 +}
  21.374 +#gallery img {
  21.375 +	width: 480px;
  21.376 +	margin: 8px;
  21.377 +}