slitaz-forge rev 12
Add tank/web folder.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Wed Feb 23 22:16:38 2011 +0000 (2011-02-23) |
parents | 5dbbf86c3bc0 |
children | 89ae537ae823 |
files | tank/web/bin/makegraphs tank/web/favicon.ico tank/web/graphs.php tank/web/index.php tank/web/pics/website/development.png tank/web/pics/website/header-img.png tank/web/pics/website/logo.png tank/web/pics/website/monitor.png tank/web/pics/website/slitaz-awstats.png tank/web/pics/website/vhosts.png tank/web/pics/website/xhtml10.png tank/web/slitaz.css |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tank/web/bin/makegraphs Wed Feb 23 22:16:38 2011 +0000 1.3 @@ -0,0 +1,318 @@ 1.4 +#!/bin/sh 1.5 +#*/5 * * * * /home/slitaz/www/tank/bin/makegraphs >/dev/null 1.6 + 1.7 +# RRD database directory 1.8 +rrdlog="/home/slitaz/www/tank/rrd" 1.9 + 1.10 +# Images directory 1.11 +rrdgraph="/home/slitaz/www/tank/pics/rrd" 1.12 + 1.13 +# Colors 1.14 +rrdcolors="--color SHADEA#FFFFFF --color SHADEB#FFFFFF --color BACK#FFFFFF" 1.15 +rrdgraphargs="-aPNG -i -z --alt-y-grid -w 600 -h 100 -r $rrdcolors" 1.16 + 1.17 +[ -d $rrdlog ] || mkdir -p $rrdlog 1.18 +[ -d $rrdgraph ] || mkdir -p $rrdgraph 1.19 + 1.20 +updatecpudata() { 1.21 + [ -e "$rrdlog/cpu.rrd" ] || rrdtool create $rrdlog/cpu.rrd --step=300 \ 1.22 + DS:user:COUNTER:600:0:500000000 \ 1.23 + DS:system:COUNTER:600:0:500000000 \ 1.24 + DS:idle:COUNTER:600:0:500000000 \ 1.25 + RRA:AVERAGE:0.5:1:576 RRA:AVERAGE:0.5:6:672 \ 1.26 + RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460 1.27 + grep '^cpu' /proc/stat | while read cpu user nice system idle misc; do 1.28 + rrdtool update $rrdlog/cpu.rrd -t user:system:idle \ 1.29 + N:$(( $user + $nice )):$system:$idle 1.30 + break 1.31 + done 1.32 + 1.33 + [ -e "$rrdlog/cpu2.rrd" ] && 1.34 + grep '^cpu' /proc/stat | while read cpu user nice system idle misc; do 1.35 + rrdtool update $rrdlog/cpu2.rrd -t nice:user:system:idle \ 1.36 + N:$nice:$user:$system:$idle 1.37 + break 1.38 + done 1.39 +} 1.40 + 1.41 +updatecpugraph() { 1.42 + period=$1 1.43 + info="$(grep '^model name' /proc/cpuinfo | cut -d: -f2 \ 1.44 + | sed 's/ * / /g' | awk ' 1.45 +{ s=$0 ; n++ } 1.46 +END { if (n > 1) printf " %dx",n; print s }')" 1.47 + rrdtool graph "$rrdgraph/cpu-$period.png" --start -1$period \ 1.48 + $rrdgraphargs -l 0 -u 100 -t "cpu usage per $period [$info ]" \ 1.49 + DEF:user=$rrdlog/cpu.rrd:user:AVERAGE \ 1.50 + DEF:system=$rrdlog/cpu.rrd:system:AVERAGE \ 1.51 + DEF:idle=$rrdlog/cpu.rrd:idle:AVERAGE \ 1.52 + 'CDEF:total=user,system,idle,+,+' \ 1.53 + 'CDEF:userpct=100,user,total,/,*' \ 1.54 + 'CDEF:systempct=100,system,total,/,*' \ 1.55 + 'CDEF:idlepct=100,idle,total,/,*' \ 1.56 + 'AREA:userpct#0000FF:user cpu usage' \ 1.57 + 'STACK:systempct#FF0000:system cpu usage' \ 1.58 + 'STACK:idlepct#00FF00:idle cpu usage\j' 1.59 +} 1.60 + 1.61 +updatememgraph() { 1.62 + period=$1 1.63 + info="$(free | awk '\ 1.64 +{ \ 1.65 + if (/Mem:/) { \ 1.66 + if ($2 < 10000) printf "%d KB",$2; \ 1.67 + else if ($2 < 10000000) printf "%d MB",$2/1024; \ 1.68 + else printf "%d GB",$2/1024/1024; \ 1.69 + } \ 1.70 +}')" 1.71 + info2="$(free | awk '\ 1.72 +{ \ 1.73 + if (/Swap:/) { \ 1.74 + if ($2 < 10000) printf "%d KB",$2; \ 1.75 + else if ($2 < 10000000) printf "%d MB",$2/1024; \ 1.76 + else printf "%d GB",$2/1024/1024; \ 1.77 + } \ 1.78 +}')" 1.79 + rrdtool graph "$rrdgraph/memory-$period.png" --start -1$period \ 1.80 + $rrdgraphargs -l 0 -u 100 \ 1.81 + -t "memory usage per $period [ $info + $info2 swap ]" \ 1.82 + DEF:used=$rrdlog/mem.rrd:memused:AVERAGE \ 1.83 + DEF:free=$rrdlog/mem.rrd:memfree:AVERAGE \ 1.84 + DEF:shared=$rrdlog/mem.rrd:memshared:AVERAGE \ 1.85 + DEF:buffer=$rrdlog/mem.rrd:membuffers:AVERAGE \ 1.86 + DEF:cache=$rrdlog/mem.rrd:memcache:AVERAGE \ 1.87 + DEF:swused=$rrdlog/mem.rrd:swapused:AVERAGE \ 1.88 + DEF:swfree=$rrdlog/mem.rrd:swapfree:AVERAGE \ 1.89 + 'CDEF:total=used,free,+' \ 1.90 + 'CDEF:used2=used,buffer,cache,shared,+,+,-' \ 1.91 + 'CDEF:usedpct=100,used2,total,/,*' \ 1.92 + 'CDEF:sharedpct=100,shared,total,/,*' \ 1.93 + 'CDEF:bufferpct=100,buffer,total,/,*' \ 1.94 + 'CDEF:cachepct=100,cache,total,/,*' \ 1.95 + 'CDEF:freepct=100,free,total,/,*' \ 1.96 + 'CDEF:swtotal=swused,swfree,+' \ 1.97 + 'CDEF:swusedpct=100,swused,swtotal,/,*' \ 1.98 + 'AREA:usedpct#0000FF:used memory' \ 1.99 + 'STACK:sharedpct#FF7F00:shared memory' \ 1.100 + 'STACK:bufferpct#FF00FF:buffered memory' \ 1.101 + 'STACK:cachepct#FFFF00:cached memory' \ 1.102 + 'STACK:freepct#00FF00:free memory' \ 1.103 + 'LINE2:swusedpct#FF0000:used swap\j' 1.104 +} 1.105 + 1.106 +updatememdata () { 1.107 + [ -e "$rrdlog/mem.rrd" ] || 1.108 + rrdtool create "$rrdlog/mem.rrd" --step=300 \ 1.109 + DS:memused:ABSOLUTE:600:0:5000000000 \ 1.110 + DS:memfree:ABSOLUTE:600:0:5000000000 \ 1.111 + DS:memshared:ABSOLUTE:600:0:5000000000 \ 1.112 + DS:membuffers:ABSOLUTE:600:0:5000000000 \ 1.113 + DS:memcache:ABSOLUTE:600:0:5000000000 \ 1.114 + DS:swapused:ABSOLUTE:600:0:5000000000 \ 1.115 + DS:swapfree:ABSOLUTE:600:0:5000000000 \ 1.116 + RRA:AVERAGE:0.5:1:576 RRA:AVERAGE:0.5:6:672 \ 1.117 + RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460 1.118 + 1.119 + while read tag count unit; do 1.120 + case "$tag" in 1.121 + MemTotal:) memtotal=$(($count * 1024));; 1.122 + MemFree:) memfree=$(($count * 1024)) 1.123 + memused=$(($memtotal - $memfree)) 1.124 + memshared=0;; 1.125 + MemShared:) memshared=$(($count * 1024));; 1.126 + Buffers:) membuffers=$(($count * 1024));; 1.127 + Cached:) memcache=$(($count * 1024));; 1.128 + SwapTotal:) swaptotal=$(($count * 1024));; 1.129 + SwapFree:) swapfree=$(($count * 1024)) 1.130 + swapused=$(( $swaptotal - $swapfree));; 1.131 + esac 1.132 + done < /proc/meminfo 1.133 + 1.134 + rrdtool update "$rrdlog/mem.rrd" \ 1.135 + -t memused:memfree:memshared:membuffers:memcache:swapused:swapfree \ 1.136 + "N:$memused:$memfree:$memshared:$membuffers:$memcache:$swapused:$swapfree" 1.137 +} 1.138 + 1.139 +getmax() { 1.140 + rrdtool fetch $rrdlog/$1.rrd AVERAGE | awk '\ 1.141 +BEGIN {max=0} \ 1.142 +/^[0-9]/ { \ 1.143 + if ($2 != "nan" && $2 > max) max=$2; \ 1.144 + if ($3 != "nan" && $3 > max) max=$3; \ 1.145 +} \ 1.146 +END { print max }' | sed 's/,/./' 1.147 +} 1.148 + 1.149 +updatediskgraph() { 1.150 + period=$1 1.151 + [ "$period" == "day" ] && maxdisk="$(getmax disk)" 1.152 + info="" 1.153 + [ -r $2 ] && 1.154 + info="[ $(fdisk -l 2> /dev/null | grep "^Disk $2:" | \ 1.155 + sed "s|Disk $2: \(.*\), .*|\1|") ]" 1.156 + if [ -e /sys/block/${2#/dev/}/device/iodone_cnt ]; then 1.157 + err=$(printf "%d\n" $(cat /sys/block/${2#/dev/}/device/ioerr_cnt) ) 1.158 + done=$(printf "%d\n" $(cat /sys/block/${2#/dev/}/device/iodone_cnt) ) 1.159 + rate=$(echo | awk "BEGIN { printf \"%.0e\\n\",$err/$done }") 1.160 + [ $err -eq 0 ] && rate="0" 1.161 +# --right-axis-label "I/O state %" 1.162 + rrdtool graph "$rrdgraph/disk-$period.png" --start -1$period \ 1.163 + $rrdgraphargs -t "disk access per $period $info" \ 1.164 + --logarithmic --lower-limit 1 -v "Sectors/second" --units=si \ 1.165 + DEF:read=$rrdlog/disk.rrd:readsect:AVERAGE \ 1.166 + DEF:write=$rrdlog/disk.rrd:writesect:AVERAGE \ 1.167 + DEF:req=$rrdlog/iodisk.rrd:req:AVERAGE \ 1.168 + DEF:done=$rrdlog/iodisk.rrd:done:AVERAGE \ 1.169 + DEF:err=$rrdlog/iodisk.rrd:err:AVERAGE \ 1.170 + "CDEF:readpct=100,read,$maxdisk,/,*" \ 1.171 + "CDEF:writepct=100,write,$maxdisk,/,*" \ 1.172 + "CDEF:errpct=100,err,req,/,*" \ 1.173 + "CDEF:donepct=100,done,req,/,*" \ 1.174 + "CDEF:errrate=err,done,/" \ 1.175 + 'AREA:readpct#0000FF:sectors read from disk' \ 1.176 + "COMMENT:I/O error rate $rate" \ 1.177 + 'STACK:writepct#00FF00:sectors written to disk' \ 1.178 + 'LINE2:donepct#FFFF00:% I/O complete' \ 1.179 + 'LINE2:errpct#FF0000:% I/O error\j' 1.180 + else 1.181 + rrdtool graph "$rrdgraph/disk-$period.png" --start -1$period \ 1.182 + $rrdgraphargs -t "disk access per $period $info" \ 1.183 + --logarithmic --lower-limit 1 -v "Sectors/second" --units=si \ 1.184 + DEF:read=$rrdlog/disk.rrd:readsect:AVERAGE \ 1.185 + DEF:write=$rrdlog/disk.rrd:writesect:AVERAGE \ 1.186 + "CDEF:readpct=100,read,$maxdisk,/,*" \ 1.187 + "CDEF:writepct=100,write,$maxdisk,/,*" \ 1.188 + 'AREA:readpct#0000FF:sectors read from disk' \ 1.189 + 'STACK:writepct#00FF00:sectors written to disk' 1.190 + fi 1.191 +} 1.192 + 1.193 +updatediskdata() { 1.194 + dev=$1 1.195 + [ -e "$rrdlog/disk.rrd" ] || 1.196 + rrdtool create "$rrdlog/disk.rrd" --step=300 \ 1.197 + DS:readsect:COUNTER:600:0:5000000000 \ 1.198 + DS:writesect:COUNTER:600:0:5000000000 \ 1.199 + RRA:AVERAGE:0.5:1:576 RRA:AVERAGE:0.5:6:672 \ 1.200 + RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460 1.201 + [ -e "$rrdlog/iodisk.rrd" ] || 1.202 + rrdtool create "$rrdlog/iodisk.rrd" --step=300 \ 1.203 + DS:done:GAUGE:600:0:U DS:err:GAUGE:600:0:U \ 1.204 + DS:req:GAUGE:600:0:U \ 1.205 + RRA:AVERAGE:0.5:1:576 RRA:AVERAGE:0.5:6:672 \ 1.206 + RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460 1.207 + 1.208 + while read major minor name readreq readsect writereq writesect misc; do 1.209 + [ $major = $(( 0x$(stat -c %t $dev) )) ] || continue 1.210 + [ $minor = $(( 0x$(stat -c %T $dev) )) ] || continue 1.211 + rrdtool update "$rrdlog/disk.rrd" -t readsect:writesect \ 1.212 + N:$readsect:$writesect 1.213 + done < /proc/diskstats 1.214 + disk=${dev:0:8} 1.215 + dir=/sys/block/${disk#/dev/}/device 1.216 + done=$(printf "%d\n" $(cat $dir/iodone_cnt 2> /dev/null) ) 1.217 + err=$(printf "%d\n" $(cat $dir/ioerr_cnt 2> /dev/null) ) 1.218 + req=$(printf "%d\n" $(cat $dir/iorequest_cnt 2> /dev/null) ) 1.219 + rrdtool update "$rrdlog/iodisk.rrd" -t done:err:req N:$done:$err:$req 1.220 +} 1.221 + 1.222 +updateifgraph() { 1.223 + interface=$1 1.224 + period=$2 1.225 + rrdtool graph "$rrdgraph/$interface-$period.png" --start -1$period \ 1.226 + $rrdgraphargs -t "traffic on $interface graph per $period" \ 1.227 + --logarithmic -A -v "Bytes/second" --units=si \ 1.228 + DEF:incoming=$rrdlog/$interface.rrd:incoming:AVERAGE \ 1.229 + DEF:outgoing=$rrdlog/$interface.rrd:outgoing:AVERAGE \ 1.230 + 'AREA:incoming#00FF00:incoming traffic' \ 1.231 + 'GPRINT:outgoing:MAX:max output%8.3lf %sBps' \ 1.232 + 'LINE1:outgoing#0000FF:outgoing traffic\j' 1.233 +} 1.234 + 1.235 +netframes() { 1.236 +ifconfig $1 | grep "$2 packets" | sed -re "s/.*$3:([0-9]+).*/\1/g" 1.237 +} 1.238 + 1.239 +netstats() { 1.240 +ifconfig $1 | grep bytes | sed -re "s/.*$2 bytes:([0-9]+).*/\1/g" 1.241 +} 1.242 + 1.243 +updateifdata() { 1.244 + interface=$1 1.245 + [ -e "$rrdlog/$interface.rrd" ] || 1.246 + rrdtool create "$rrdlog/$interface.rrd" --step=300 \ 1.247 + DS:incoming:COUNTER:600:0:U \ 1.248 + DS:outgoing:COUNTER:600:0:U \ 1.249 + RRA:AVERAGE:0.5:1:576 RRA:AVERAGE:0.5:6:672 \ 1.250 + RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460 1.251 + [ -e "$rrdlog/packets-$interface.rrd" ] || 1.252 + rrdtool create "$rrdlog/packets-$interface.rrd" --step=300 \ 1.253 + DS:in:COUNTER:600:0:U DS:out:COUNTER:600:0:U \ 1.254 + DS:inerr:COUNTER:600:0:U DS:outerr:COUNTER:600:0:U \ 1.255 + DS:indrop:COUNTER:600:0:U DS:outdrop:COUNTER:600:0:U \ 1.256 + DS:inov:COUNTER:600:0:U DS:outov:COUNTER:600:0:U \ 1.257 + DS:frame:COUNTER:600:0:U DS:carrier:COUNTER:600:0:U \ 1.258 + RRA:AVERAGE:0.5:1:576 RRA:AVERAGE:0.5:6:672 \ 1.259 + RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460 1.260 + rx=$(netstats $interface RX) 1.261 + tx=$(netstats $interface TX) 1.262 + rrdtool update "$rrdlog/$interface.rrd" -t incoming:outgoing \ 1.263 + N:${rx:-U}:${tx:-U} 1.264 + rx=$(netframes $interface RX packets) 1.265 + tx=$(netframes $interface TX packets) 1.266 + rxerr=$(netframes $interface RX errors) 1.267 + txerr=$(netframes $interface TX errors) 1.268 + rxdrop=$(netframes $interface RX dropped) 1.269 + txdrop=$(netframes $interface TX dropped) 1.270 + rxov=$(netframes $interface RX overruns) 1.271 + txov=$(netframes $interface TX overruns) 1.272 + frame=$(netframes $interface RX frame) 1.273 + carrier=$(netframes $interface TX carrier) 1.274 + rrdtool update "$rrdlog/packets-$interface.rrd" \ 1.275 + -t in:out:inerr:outerr:indrop:outdrop:inov:outov:frame:carrier \ 1.276 + N:${rx:-U}:${tx:-U}:${rxerr:-U}:${txerr:-U}:${rxdrop:-U}:${txdrop:-U}:${rxov:-U}:${txov:-U}:${frame:-U}:${carrier:-U} 1.277 +} 1.278 + 1.279 +getdisk() 1.280 +{ 1.281 + local d 1.282 + local i 1.283 + d=$(stat -c %04D $1) 1.284 + for i in /dev/* ; do 1.285 + [ $(stat -c "%02t%02T" $i) == $d ] || continue 1.286 + echo $i 1.287 + break 1.288 + done 1.289 +} 1.290 + 1.291 +### 1.292 +### System graphs 1.293 +### 1.294 + 1.295 +updatecpudata 1.296 +updatecpugraph day 1.297 +updatecpugraph week 1.298 +updatecpugraph month 1.299 +updatecpugraph year 1.300 + 1.301 +updatememdata 1.302 +updatememgraph day 1.303 +updatememgraph week 1.304 +updatememgraph month 1.305 +updatememgraph year 1.306 + 1.307 +if [ -e /proc/diskstats ]; then 1.308 + disk=$(getdisk $0) 1.309 + updatediskdata $disk 1.310 + updatediskgraph day ${disk:0:8} 1.311 + updatediskgraph week ${disk:0:8} 1.312 + updatediskgraph month ${disk:0:8} 1.313 + updatediskgraph year ${disk:0:8} 1.314 +fi 1.315 + 1.316 +iface=$(/sbin/route -n | awk '{ if (/^0.0.0.0/) print $8 }') 1.317 +updateifdata $iface 1.318 +updateifgraph $iface day 1.319 +updateifgraph $iface week 1.320 +updateifgraph $iface month 1.321 +updateifgraph $iface year
2.1 Binary file tank/web/favicon.ico has changed
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/tank/web/graphs.php Wed Feb 23 22:16:38 2011 +0000 3.3 @@ -0,0 +1,125 @@ 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>Tank RRD stats</title> 3.9 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 3.10 + <meta name="description" content="slitaz tank rrdtool graphs" /> 3.11 + <meta name="robots" content="noindex" /> 3.12 + <meta name="author" content="SliTaz Contributors" /> 3.13 + <link rel="shortcut icon" href="favicon.ico" /> 3.14 + <link rel="stylesheet" type="text/css" href="slitaz.css" /> 3.15 +</head> 3.16 +<body> 3.17 + 3.18 +<!-- Header --> 3.19 +<div id="header"> 3.20 + <a href="http://tank.slitaz.org/"><img id="logo" 3.21 + src="pics/website/logo.png" 3.22 + title="tank.slitaz.org" alt="tank.slitaz.org" /></a> 3.23 + <p id="titre">#!/Tank</p> 3.24 +</div> 3.25 + 3.26 +<!-- Content --> 3.27 +<div id="content-full"> 3.28 + 3.29 +<!-- Block begin --> 3.30 +<div class="block"> 3.31 + <!-- Nav block begin --> 3.32 + <div id="block_nav"> 3.33 + <h3><img src="pics/website/development.png" alt="png" />Devel corner</h3> 3.34 + <ul> 3.35 + <li><a href="http://www.slitaz.org/en/devel/">Website/devel</a></li> 3.36 + <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 3.37 + <li><a href="http://hg.slitaz.org/">Mercurial Repos</a></li> 3.38 + <li><a href="http://bb.slitaz.org/">Build Bot</a></li> 3.39 + <li><a href="http://scn.slitaz.org/">Community Network</a></li> 3.40 + <li><a href="http://people.slitaz.org/">SliTaz People</a></li> 3.41 + </ul> 3.42 + <!-- Nav block end --> 3.43 + </div> 3.44 + <!-- Top block begin --> 3.45 + <div id="block_top"> 3.46 + <h1>Tank RRD stats</h1> 3.47 + <p> 3.48 + This is the SliTaz GNU/Linux main server and build host. The server runs 3.49 + naturally SliTaz (stable) and provides some services to all contributors 3.50 + such as: secure access, disk space, a public directory, cron jobs and the 3.51 + <a href="http://bb.slitaz.org/">Build Bot</a>. 3.52 + </p> 3.53 + <!-- Top block end --> 3.54 + </div> 3.55 +<!-- Block end --> 3.56 +</div> 3.57 + 3.58 +<?php 3.59 + 3.60 +$myurl="http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']; 3.61 + 3.62 +function one_graphic($img,$name) 3.63 +{ 3.64 + echo '<img src="pics/rrd/'.$img.'" title="'. 3.65 + $name.'" alt="'.$name.'" />'."\n"; 3.66 +} 3.67 + 3.68 +function graphic($res, $img='') 3.69 +{ 3.70 + global $myurl; 3.71 + if (!$img) $img=$res; 3.72 + echo "<a name=\"".$res."\"></a>"; 3.73 + echo "<a href=\"".$myurl."?stats=".$res."#".$res."\">\n"; 3.74 + one_graphic($img."-day.png",$res." daily"); 3.75 + echo "</a>"; 3.76 + if ($_GET['stats'] == $res) { 3.77 + one_graphic($img."-week.png",$res." weekly"); 3.78 + one_graphic($img."-month.png",$res." monthly"); 3.79 + one_graphic($img."-year.png",$res." yearly"); 3.80 + } 3.81 +} 3.82 + 3.83 +echo "<h2>CPU</h2>\n"; 3.84 +graphic("cpu"); 3.85 +echo "<h2>Memory</h2>\n"; 3.86 +graphic("memory"); 3.87 +echo "<h2>Disk</h2>\n"; 3.88 +graphic("disk"); 3.89 +echo "<h2>Network</h2>\n"; 3.90 +$eth = array(); 3.91 +exec("/sbin/route -n | awk '{ if (/^0.0.0.0/) print $8 }'", $eth); 3.92 +graphic("net",$eth[0]); 3.93 + 3.94 +?> 3.95 + 3.96 +<!-- End of content --> 3.97 +</div> 3.98 + 3.99 +<!-- Footer --> 3.100 +<div id="footer"> 3.101 + <div class="right_box"> 3.102 + <h4>SliTaz Network</h4> 3.103 + <ul> 3.104 + <li><a href="http://doc.slitaz.org/">Documentation</a></li> 3.105 + <li><a href="http://forum.slitaz.org/">Support Forum</a></li> 3.106 + <li><a href="http://scn.slitaz.org/">Community Network</a></li> 3.107 + <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 3.108 + <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li> 3.109 + <li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li> 3.110 + </ul> 3.111 + </div> 3.112 + <h4>SliTaz Website</h4> 3.113 + <ul> 3.114 + <li><a href="#header">Top of the page</a></li> 3.115 + <li>Copyright © <?php echo date('Y'); ?> 3.116 + <a href="http://www.slitaz.org/">SliTaz</a></li> 3.117 + <li><a href="http://www.slitaz.org/en/about/">About the project</a></li> 3.118 + <li><a href="http://www.slitaz.org/netmap.php">Network Map</a></li> 3.119 + <li>Page modified the <?php echo (date( "d M Y", getlastmod())); ?></li> 3.120 + <li><a href="http://validator.w3.org/check?uri=referer"><img 3.121 + src="pics/website/xhtml10.png" alt="Valid XHTML 1.0" 3.122 + title="Code validé XHTML 1.0" 3.123 + style="width: 80px; height: 15px; vertical-align: middle;" /></a></li> 3.124 + </ul> 3.125 +</div> 3.126 + 3.127 +</body> 3.128 +</html>
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/tank/web/index.php Wed Feb 23 22:16:38 2011 +0000 4.3 @@ -0,0 +1,188 @@ 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>SliTaz Tank</title> 4.9 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 4.10 + <meta name="description" content="slitaz tank server" /> 4.11 + <meta name="robots" content="index, nofollow" /> 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 + <a href="http://tank.slitaz.org/"><img id="logo" 4.21 + src="pics/website/logo.png" 4.22 + title="tank.slitaz.org" alt="tank.slitaz.org" /></a> 4.23 + <p id="titre">#!/Tank</p> 4.24 +</div> 4.25 + 4.26 +<!-- Content --> 4.27 +<div id="content-full"> 4.28 + 4.29 +<!-- Block begin --> 4.30 +<div class="block"> 4.31 + <!-- Nav block begin --> 4.32 + <div id="block_nav"> 4.33 + <h3><img src="pics/website/development.png" alt="png" />Devel corner</h3> 4.34 + <ul> 4.35 + <li><a href="http://www.slitaz.org/en/devel/">Website/devel</a></li> 4.36 + <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 4.37 + <li><a href="http://hg.slitaz.org/">Mercurial Repos</a></li> 4.38 + <li><a href="http://bb.slitaz.org/">Build Bot</a></li> 4.39 + <li><a href="http://scn.slitaz.org/">Community Network</a></li> 4.40 + <li><a href="http://people.slitaz.org/">SliTaz People</a></li> 4.41 + </ul> 4.42 + <!-- Nav block end --> 4.43 + </div> 4.44 + <!-- Top block begin --> 4.45 + <div id="block_top"> 4.46 + <h1>Codename: tank</h1> 4.47 + <p> 4.48 + This is the SliTaz GNU/Linux main server and build host. The server runs 4.49 + naturally SliTaz (stable) and provides some services to all contributors 4.50 + such as: secure access, disk space, a public directory, cron jobs and the 4.51 + <a href="http://bb.slitaz.org/">Build Bot</a>. 4.52 + </p> 4.53 + <p> 4.54 + Tank CPU is a AMD Dual Core 2 GHz - 2GB RAM - Located next to Lausanne, 4.55 + Switzerland and offered by Thomas Hinterberger and hosted by Christophe 4.56 + Lincoln. Tank is also monitored by RRDtool which provides 4.57 + <a href="graphs.php">graphical stats</a>. 4.58 + </p> 4.59 + <!-- Top block end --> 4.60 + </div> 4.61 +<!-- Block end --> 4.62 +</div> 4.63 + 4.64 +<h2><a href="graphs.php"><img 4.65 + style="vertical-align: middle; padding: 0 4px 0 0;" 4.66 + title="Tank RRDtool graphs" alt="graphs" 4.67 + src="pics/website/monitor.png" /></a>System stats</h2> 4.68 + 4.69 +<h4>Uptime</h4> 4.70 + 4.71 +<pre class="package"> 4.72 +<?php 4.73 +system("uptime | sed 's/^\s*//'"); 4.74 +?> 4.75 +</pre> 4.76 + 4.77 +<h4>Disk usage</h4> 4.78 +<pre class="package"> 4.79 +<?php 4.80 +system("df -h | sed '/^rootfs/d' | grep '\(^/dev\|Filesystem\)'"); 4.81 +?> 4.82 +</pre> 4.83 + 4.84 +<h4>Network</h4> 4.85 +<pre class="package"> 4.86 +<?php 4.87 +system("ifconfig eth0 | awk '{ if (/X packet/ || /X byte/) print }' | sed 's/^\s*//'"); 4.88 +?> 4.89 +</pre> 4.90 + 4.91 +<h2><a href="/stats/awstats.pl?config=www.slitaz.org"><img 4.92 + style="vertical-align: middle; padding: 0 4px 0 0;" 4.93 + title="Tank Virtual hosts" alt="vhosts" 4.94 + src="pics/website/vhosts.png" /></a>Virtual hosts</h2> 4.95 + 4.96 +<ul> 4.97 + <li><a href="http://www.slitaz.org/">www.slitaz.org</a> - SliTaz Website. 4.98 + (<a href="/stats/awstats.pl?config=www.slitaz.org">stats</a>)</li> 4.99 + <li><a href="http://doc.slitaz.org/">doc.slitaz.org</a> - Documentation platform.</li> 4.100 + <li><a href="http://pkgs.slitaz.org/">pkgs.slitaz.org</a> - Packages Web interface.</li> 4.101 + <li><a href="http://boot.slitaz.org/">boot.slitaz.org</a> - gPXE Web boot.</li> 4.102 + <li><a href="http://hg.slitaz.org/">hg.slitaz.org</a> - Mercurial repositories.</li> 4.103 + <li><a href="http://bb.slitaz.org/">bb.slitaz.org</a> - SliTaz Build Bot.</li> 4.104 + <li><a href="http://people.slitaz.org/">people.slitaz.org</a> - SliTaz People stuff.</li> 4.105 + <li><a href="http://pro.slitaz.org/">pro.slitaz.org</a> - SliTaz Professional services.</li> 4.106 +</ul> 4.107 + 4.108 +<h2><img 4.109 + style="vertical-align: middle; padding: 0 4px 0 0;" 4.110 + title="Erjo Virtual hosts" alt="vhosts" 4.111 + src="pics/website/vhosts.png" />Other hosts</h2> 4.112 + 4.113 +<p> 4.114 + These services are hosted by some individual sponsors who gracefully offer 4.115 + resources to the SliTaz project. 4.116 +</p> 4.117 +<ul> 4.118 + <li><a href="http://forum.slitaz.org/">forum.slitaz.org</a> - SliTaz support forum.</li> 4.119 + <li><a href="http://labs.slitaz.org/">labs.slitaz.org</a> - SliTaz Laboratories.</li> 4.120 + <li><a href="http://mirror.slitaz.org/">mirror.slitaz.org</a> - SliTaz main mirror and replicas. 4.121 + (<a href="http://mirror.slitaz.org/info/">more...</a>)</li> 4.122 + <li><a href="http://scn.slitaz.org/">scn.slitaz.org</a> - Community platform.</li> 4.123 + <li><a href="http://pizza.slitaz.org/">pizza.slitaz.org</a> - SliTaz flavor builder.</li> 4.124 +</ul> 4.125 + 4.126 +<h2><a href="http://mirror.slitaz.org/info/"> <img 4.127 + style="vertical-align: middle; padding: 0 4px 0 0;" 4.128 + src="pics/website/vhosts.png" 4.129 + title="Secondary mirrors" alt="mirrors" /></a>Mirrors</h2> 4.130 +<p> 4.131 + These mirrors are updated using the url <b>rsync://mirror.slitaz.org/slitaz/</b> 4.132 + (<a href="http://mirror.slitaz.org/awstats.pl?config=rsync">stats</a>) 4.133 +</p> 4.134 +<ul> 4.135 + <li><a href="http://mirror.switch.ch/ftp/mirror/slitaz/"> 4.136 + http://mirror.switch.ch/ftp/mirror/slitaz/</a> or 4.137 + <a href="ftp://mirror.switch.ch/mirror/slitaz/"> 4.138 + ftp://mirror.switch.ch/mirror/slitaz/</a></li> 4.139 + <li><a href="http://download.tuxfamily.org/slitaz/"> 4.140 + http://download.tuxfamily.org/slitaz/</a></li> 4.141 + <li><a href="http://www.linuxembarque.com/slitaz/mirror/"> 4.142 + http://www.linuxembarque.com/slitaz/mirror/</a></li> 4.143 + <li><a href="http://mirror.lupaworld.com/slitaz/"> 4.144 + http://mirror.lupaworld.com/slitaz/</a></li> 4.145 + <li><a href="http://slitaz.c3sl.ufpr.br/"> 4.146 + http://slitaz.c3sl.ufpr.br/</a> or 4.147 + <a href="ftp://slitaz.c3sl.ufpr.br/slitaz/"> 4.148 + ftp://slitaz.c3sl.ufpr.br/slitaz/</a></li> 4.149 + <li><a href="http://slitaz.mirror.garr.it/mirrors/slitaz/"> 4.150 + http://slitaz.mirror.garr.it/mirrors/slitaz/</a></li> 4.151 + <li><a href="http://www.gtlib.gatech.edu/pub/slitaz/"> 4.152 + http://www.gtlib.gatech.edu/pub/slitaz/</a> or 4.153 + <a href="ftp://ftp.gtlib.gatech.edu/pub/slitaz/"> 4.154 + ftp://ftp.gtlib.gatech.edu/pub/slitaz/</a></li> 4.155 + <li><a href="ftp://ftp.pina.si/slitaz/"> 4.156 + ftp://ftp.pina.si/slitaz/</a></li> 4.157 +</ul> 4.158 + 4.159 +<!-- End of content --> 4.160 +</div> 4.161 + 4.162 +<!-- Footer --> 4.163 +<div id="footer"> 4.164 + <div class="right_box"> 4.165 + <h4>SliTaz Network</h4> 4.166 + <ul> 4.167 + <li><a href="http://doc.slitaz.org/">Documentation</a></li> 4.168 + <li><a href="http://forum.slitaz.org/">Support Forum</a></li> 4.169 + <li><a href="http://scn.slitaz.org/">Community Network</a></li> 4.170 + <li><a href="http://labs.slitaz.org/">Laboratories</a></li> 4.171 + <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li> 4.172 + <li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li> 4.173 + </ul> 4.174 + </div> 4.175 + <h4>SliTaz Website</h4> 4.176 + <ul> 4.177 + <li><a href="#header">Top of the page</a></li> 4.178 + <li>Copyright © <?php echo date('Y'); ?> 4.179 + <a href="http://www.slitaz.org/">SliTaz</a></li> 4.180 + <li><a href="http://www.slitaz.org/en/about/">About the project</a></li> 4.181 + <li><a href="http://www.slitaz.org/netmap.php">Network Map</a></li> 4.182 + <li>Page modified the <?php echo (date( "d M Y", getlastmod())); ?></li> 4.183 + <li><a href="http://validator.w3.org/check?uri=referer"><img 4.184 + src="pics/website/xhtml10.png" alt="Valid XHTML 1.0" 4.185 + title="Code validé XHTML 1.0" 4.186 + style="width: 80px; height: 15px; vertical-align: middle;" /></a></li> 4.187 + </ul> 4.188 +</div> 4.189 + 4.190 +</body> 4.191 +</html>
5.1 Binary file tank/web/pics/website/development.png has changed
6.1 Binary file tank/web/pics/website/header-img.png has changed
7.1 Binary file tank/web/pics/website/logo.png has changed
8.1 Binary file tank/web/pics/website/monitor.png has changed
9.1 Binary file tank/web/pics/website/slitaz-awstats.png has changed
10.1 Binary file tank/web/pics/website/vhosts.png has changed
11.1 Binary file tank/web/pics/website/xhtml10.png has changed
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/tank/web/slitaz.css Wed Feb 23 22:16:38 2011 +0000 12.3 @@ -0,0 +1,587 @@ 12.4 +/* 12.5 + CSS style for SliTaz GNU/Linux website 12.6 + www.slitaz.org - (c) 2011 Pankso 12.7 +*/ 12.8 + 12.9 +html { 12.10 + min-height: 102%; 12.11 +} 12.12 + 12.13 +body { 12.14 + background: #ffffff; 12.15 + color: black; 12.16 + font: 13px sans-serif, vernada, arial; 12.17 + margin: 0; 12.18 + border-top: 34px solid #f1f1f1; 12.19 +} 12.20 + 12.21 +/* Accessibility */ 12.22 + 12.23 +#access { 12.24 + position: absolute; 12.25 + top: 4px; 12.26 + right: 0px; 12.27 + text-align: right; 12.28 + width: auto; 12.29 + margin: 0; 12.30 + padding: 4px 4px 4px 20px; 12.31 + font-size: 11px; 12.32 + font-weight: bold; 12.33 +} 12.34 + 12.35 +#access a { 12.36 + background: transparent; 12.37 + color: #0F314E; 12.38 + text-decoration: none; 12.39 +} 12.40 + 12.41 +#access a:hover { 12.42 + background: inherit; 12.43 + color: #b64b22; 12.44 +} 12.45 + 12.46 +#access img { 12.47 + vertical-align: middle; 12.48 +} 12.49 + 12.50 +/* Header and title */ 12.51 + 12.52 +#header { 12.53 + /*background: #f0ba08 url(pics/website/header.png) repeat-x top;*/ 12.54 + background: #351a0a url(pics/website/header-img.png) no-repeat top right; 12.55 + color: black; 12.56 + width: 100%; 12.57 + height: 42px; 12.58 + border-top: 1px solid black; 12.59 + border-bottom: 1px solid #999; 12.60 + margin-bottom: 33px; 12.61 +} 12.62 + 12.63 +#titre { 12.64 + position: absolute; 12.65 + font-size: 14px; 12.66 + font-weight: bolder ; 12.67 + left: 180px; 12.68 + top: 4px; 12.69 +} 12.70 + 12.71 +#logo { 12.72 + position: absolute; 12.73 + float: left; 12.74 + left: 16px; 12.75 + top: -10px; 12.76 + width: 200px; 12.77 + height: 74px; 12.78 +} 12.79 + 12.80 +/* Side bar Navigation */ 12.81 + 12.82 +#nav { 12.83 + position: absolute; 12.84 + top: 102px; 12.85 + right: 80px; 12.86 + color: #555555; 12.87 + float: right; 12.88 + width: 250px; 12.89 + line-height: 1.5em; 12.90 + text-align: left; 12.91 + font-size: 12px; 12.92 +} 12.93 + 12.94 +#nav .nav_box ul { 12.95 + list-style-type: none; 12.96 + margin: 0; 12.97 + padding: 10px 24px 10px 0px; 12.98 + background-color: inherit; 12.99 +} 12.100 + 12.101 +#nav li { 12.102 + display: inline; 12.103 +} 12.104 + 12.105 +#nav h4 { 12.106 + font-size: 120%; 12.107 + color: #666666; 12.108 + font-weight: bold; 12.109 + margin: 0; 12.110 + padding: 0 0 1px 0; 12.111 + border-bottom: 1px solid #cecece; 12.112 +} 12.113 + 12.114 +#nav a { 12.115 + color: #0F314E; 12.116 + background: inherit; 12.117 + display: block; 12.118 + text-decoration: none; 12.119 + font-weight: bold; 12.120 +} 12.121 + 12.122 +#nav a:hover { 12.123 + color: #b64b22; 12.124 + text-decoration: none; 12.125 + display: block; 12.126 +} 12.127 + 12.128 +#nav ul { 12.129 + -moz-border-radius: 8px; 12.130 + -webkit-border-radius: 8px; 12.131 + border-radius: 8px; 12.132 + list-style-type: none; 12.133 + margin: 10px 0; 12.134 + padding: 10px 24px 10px 24px; 12.135 + background-color: #eaeaea; 12.136 +} 12.137 + 12.138 +.nav_box { 12.139 + margin: 10px 0; 12.140 + padding: 10px 24px 10px 24px; 12.141 + background-color: #eaeaea; 12.142 + text-align: justify; 12.143 + -moz-border-radius: 8px; 12.144 + -webkit-border-radius: 8px; 12.145 + border-radius: 8px; 12.146 + -moz-box-shadow: 0 1px 3px #666; 12.147 + -webkit-box-shadow: 0 1px 3px #666; 12.148 + box-shadow: 0 1px 3px #666; 12.149 + /* CSS3 transition */ 12.150 + -webkit-transition-property: background-color; 12.151 + -webkit-transition-duration: 2s; 12.152 + -moz-transition-property: background-color; 12.153 + -moz-transition-duration: 2s; 12.154 + transition-property: background-color; 12.155 + transition-duration: 2s; 12.156 +} 12.157 + 12.158 +.nav_box:hover { background-color: #f8f8f8; } 12.159 + 12.160 +#nav .nav_box p { 12.161 + line-height: 1.3em; 12.162 +} 12.163 + 12.164 +#nav .nav_box p a { 12.165 + display: inline; 12.166 + font-weight: normal; 12.167 + text-decoration: underline; 12.168 +} 12.169 + 12.170 +#nav .nav_box p a:hover { 12.171 + text-decoration: none; 12.172 + color: blue; 12.173 + background: inherit; 12.174 +} 12.175 + 12.176 +/* Page content */ 12.177 + 12.178 +#content { 12.179 + background: white; 12.180 + color: black; 12.181 + text-align: justify; 12.182 + height: auto; 12.183 + margin: 6px 320px 0px 0px; 12.184 + padding: 0px 40px 60px 80px; 12.185 +} 12.186 + 12.187 +#content-full { 12.188 + background: white; 12.189 + color: black; 12.190 + text-align: justify; 12.191 + height: auto; 12.192 + margin: 0; 12.193 + padding: 0px 80px 40px 80px; 12.194 +} 12.195 + 12.196 +#content li, #content-full li { 12.197 + line-height: 1.5em; 12.198 + text-align: left; 12.199 +} 12.200 + 12.201 +#news li { 12.202 + list-style-type: square; 12.203 + border-bottom: 1px dotted #BEBEBE; 12.204 + margin-left: -25px; 12.205 + padding: 4px 0px 4px 0px; 12.206 +} 12.207 + 12.208 +#news a { 12.209 + text-decoration: none; 12.210 +} 12.211 + 12.212 +#gallery { 12.213 + text-align: center; 12.214 +} 12.215 + 12.216 +/* Box and block. */ 12.217 + 12.218 +.infobox { 12.219 + margin: 20px 60px; 12.220 + padding: 12px; 12.221 + background: #f8f8f8; 12.222 +} 12.223 + 12.224 +.infobox img { vertical-align: middle; } 12.225 +/* .infobox:hover { background-color: #f2b21d; } */ 12.226 +.infobox:hover { background-color: #FBFBFB; } 12.227 + 12.228 +.block { 12.229 + /*padding-bottom: 35%;*/ 12.230 + color: black; 12.231 + min-height: 200px; 12.232 + margin-bottom: 40px; 12.233 +} 12.234 + 12.235 +.block ul { 12.236 + list-style-type: none; 12.237 + margin: 0; 12.238 + padding: 0 20px; 12.239 +} 12.240 + 12.241 +.block_left { 12.242 + width: 46%; 12.243 + float: left; 12.244 + background-color: #eaeaea; 12.245 + margin: 4px 2px; 12.246 + padding: 0 10px 10px 10px; 12.247 +} 12.248 + 12.249 +.block_right { 12.250 + width: 46%; 12.251 + float: right; 12.252 + background-color: #eaeaea; 12.253 + margin: 4px 2px; 12.254 + padding: 0 10px 10px 10px; 12.255 +} 12.256 + 12.257 +#block_top { 12.258 + color: black; 12.259 + background-color: #eaeaea; 12.260 + min-height: 180px; 12.261 + margin-bottom: 40px; 12.262 + margin-right: 340px; 12.263 + padding: 0 10px; 12.264 +} 12.265 + 12.266 +#block_nav { 12.267 + width: 300px; 12.268 + min-height: 180px; 12.269 + float: right; 12.270 + background-color: #eaeaea; 12.271 + margin: 0; 12.272 + padding: 0 10px; 12.273 +} 12.274 + 12.275 +.infobox, .block_left, .block_right, #block_top, #block_nav, #footer { 12.276 + -moz-border-radius: 8px; 12.277 + -webkit-border-radius: 8px; 12.278 + border-radius: 8px; 12.279 + -moz-box-shadow: 0 1px 3px #666; 12.280 + -webkit-box-shadow: 0 1px 3px #666; 12.281 + box-shadow: 0 1px 3px #666; 12.282 + /* CSS3 transition */ 12.283 + -webkit-transition-property: background-color; 12.284 + -webkit-transition-duration: 2s; 12.285 + -moz-transition-property: background-color; 12.286 + -moz-transition-duration: 2s; 12.287 + transition-property: background-color; 12.288 + transition-duration: 2s; 12.289 +} 12.290 + 12.291 +#block_nav { 12.292 + font-weight: bold; 12.293 +} 12.294 + 12.295 +#block_nav a { 12.296 + text-decoration: none; 12.297 +} 12.298 + 12.299 +#block_nav li a:hover { 12.300 + color: #b64b22; 12.301 +} 12.302 + 12.303 +#block_nav ul { 12.304 + margin: 0; 12.305 + list-style-type: none; 12.306 +} 12.307 + 12.308 +#block_nav h3 { 12.309 + font-size: 110%; 12.310 +} 12.311 + 12.312 +.block_left:hover, .block_right:hover, #block_top:hover, 12.313 +#block_nav:hover, #footer:hover { 12.314 + background-color: #f8f8f8; 12.315 +} 12.316 + 12.317 +.right_box { 12.318 + width: 50%; 12.319 + float: right; 12.320 +} 12.321 + 12.322 +.floor { 12.323 + color: #999999; 12.324 + font-size: 20px; 12.325 + -webkit-transform: rotate(-45deg) skew(15deg, 15deg); 12.326 + -moz-transform: rotate(-45deg) skew(15deg, 15deg); 12.327 + -o-transform: rotate(-45deg) skew(15deg, 15deg); 12.328 + -ms-transform: rotate(-45deg) skew(15deg, 15deg); 12.329 + transform: rotate(-45deg) skew(15deg, 15deg); 12.330 +} 12.331 + 12.332 +/* Button */ 12.333 + 12.334 +.button { margin-left: 20px; } 12.335 + 12.336 +.button a { 12.337 + background-color: #b64b22; 12.338 + color: #ffffff; 12.339 + margin-right: 6px; 12.340 + padding: 6px 10px; 12.341 + font-size: 14px; 12.342 + -moz-border-radius: 4px; 12.343 + -webkit-border-radius: 4px; 12.344 + border-radius: 4px; 12.345 + -moz-box-shadow: 0 1px 3px #666; 12.346 + -webkit-box-shadow: 0 1px 3px #666; 12.347 + box-shadow: 0 1px 3px #666; 12.348 +} 12.349 + 12.350 +.button a:hover, input[type=submit]:hover { 12.351 + background-color: #a3431f; 12.352 + color: #ffffff; 12.353 +} 12.354 + 12.355 +input[type=submit] { 12.356 + border: 1px solid #b64b22; 12.357 + background-color: #b64b22; 12.358 + color: white; 12.359 + font-weight: bold; 12.360 + cursor: pointer; 12.361 + padding: 2px 10px; 12.362 + font-size: 14px; 12.363 + -moz-border-radius: 2px; 12.364 + -webkit-border-radius: 2px; 12.365 + border-radius: 2px; 12.366 + -moz-box-shadow: 0 0 5px #666; 12.367 + -webkit-box-shadow: 0 0 5px#666; 12.368 + box-shadow: 0 0 5px #666; 12.369 +} 12.370 + 12.371 +input[type=text] { 12.372 + border: 1px solid #333333; 12.373 + padding: 3px; 12.374 + width: 100%; 12.375 + max-width: 500px; 12.376 +} 12.377 + 12.378 +/* Clouds */ 12.379 + 12.380 +#cloud { 12.381 + padding: 10px 0px; 12.382 + line-height: 3em; 12.383 + text-align: center; 12.384 +} 12.385 +#cloud a { padding: 0 2px; color: #956411; } 12.386 +#cloud a.tag1 { font-size: 0.7em; font-weight: 100; } 12.387 +#cloud a.tag2 { font-size: 0.8em; font-weight: 200; } 12.388 +#cloud a.tag3 { font-size: 0.9em; font-weight: 300; } 12.389 +#cloud a.tag4 { font-size: 1.0em; font-weight: 400; } 12.390 +#cloud a.tag5 { font-size: 1.2em; font-weight: 500; } 12.391 +#cloud a.tag6 { font-size: 1.4em; font-weight: 600; } 12.392 +#cloud a.tag7 { font-size: 1.6em; font-weight: 700; } 12.393 +#cloud a.tag8 { font-size: 1.8em; font-weight: 800; } 12.394 +#cloud a.tag9 { font-size: 2.2em; font-weight: 900; } 12.395 +#cloud a.tag10 { font-size: 2.5em; font-weight: 900; } 12.396 + 12.397 +/* Slideshow. */ 12.398 + 12.399 +#slideshow 12.400 +{ 12.401 + overflow: hidden; 12.402 + margin: 10px auto 10px; 12.403 + position: relative; 12.404 + width: 260px; 12.405 + height: 163px; 12.406 +} 12.407 + 12.408 +#slideshow img 12.409 +{ 12.410 + border: 0; 12.411 + width: 260px; 12.412 + height: 163px; 12.413 +} 12.414 + 12.415 +#twitter { 12.416 + margin-top: 20px; 12.417 + -moz-border-radius: 8px; 12.418 + -webkit-border-radius: 8px; 12.419 + border-radius: 8px; 12.420 + -moz-box-shadow: 0 1px 3px #666; 12.421 + -webkit-box-shadow: 0 1px 3px #666; 12.422 + box-shadow: 0 1px 3px #666; 12.423 +} 12.424 + 12.425 +/* HTML styles */ 12.426 + 12.427 +h1 { 12.428 + color: #444444; 12.429 + background: transparent; 12.430 + text-align: left; 12.431 + margin: 0px 0px 4px 0px; 12.432 + font-size: 150%; 12.433 + font-weight: bold; 12.434 + padding: 5px 0 0 10px; 12.435 +} 12.436 + 12.437 +h2 { 12.438 + color: #b64b22; 12.439 + padding: 0; 12.440 + margin: 20px 0 0 0; 12.441 + font-size: 130%; 12.442 + font-weight: bold; 12.443 +} 12.444 + 12.445 +h3 { 12.446 + font-weight: bold; 12.447 + color: #666666; 12.448 + background: transparent; 12.449 +} 12.450 + 12.451 +h3 img { 12.452 + vertical-align: middle; 12.453 + width: 20px; 12.454 + height: 20px; 12.455 + padding-right: 4px; 12.456 +} 12.457 + 12.458 +a { 12.459 + text-decoration: underline; 12.460 + color: #103A5E; 12.461 + background: inherit; 12.462 +} 12.463 + 12.464 +a:hover { 12.465 + text-decoration: none; 12.466 + color: blue; 12.467 + background: inherit; 12.468 +} 12.469 + 12.470 +code { 12.471 + font-size: 12px; 12.472 + color: #669900; 12.473 + background: inherit; 12.474 +} 12.475 + 12.476 +tt { 12.477 + color: #15EE15; 12.478 + background: inherit; 12.479 +} 12.480 + 12.481 +img { 12.482 + border: 0pt none; 12.483 +} 12.484 + 12.485 +fieldset { 12.486 + background: #E2ECf6; 12.487 + color: black; 12.488 + margin-top: 25px; 12.489 + border: 1px solid black; 12.490 +} 12.491 + 12.492 +legend { 12.493 + border: 1px solid black; 12.494 + color: #6c0023; 12.495 + background: #eaeaea; 12.496 + font-weight: bold; 12.497 +} 12.498 + 12.499 +pre { 12.500 + padding: 5px; 12.501 + color: black; 12.502 + background: #E1E0B0; 12.503 +} 12.504 + 12.505 +pre.script { 12.506 + padding: 10px; 12.507 + color: black; 12.508 + background: #E8E8E8; 12.509 + border: 1px inset #606060; 12.510 +} 12.511 + 12.512 +textarea { 12.513 + background: #E5E5E5; 12.514 + margin-top: 12px; 12.515 +} 12.516 + 12.517 +/* Packages pages */ 12.518 + 12.519 +.pkg_nav { 12.520 + border-top: 1px solid black; 12.521 + margin-top: 10px; 12.522 + padding-top: 10px; 12.523 +} 12.524 + 12.525 +pre.package { 12.526 + padding: 0px; 12.527 + color: black; 12.528 + background: white; 12.529 +} 12.530 + 12.531 +p.get { 12.532 + text-align: center; 12.533 + padding: 10px; 12.534 + color: black; 12.535 + background: #F3F3F3; 12.536 + border: 1px solid #DEDEDE; 12.537 + border-radius: 4px; 12.538 + -moz-border-radius: 4px; 12.539 + -webkit-border-radius: 4px; 12.540 +} 12.541 + 12.542 +p.get a { 12.543 + font-weight: bold; 12.544 + text-decoration: none; 12.545 +} 12.546 + 12.547 +.pkgs-search { 12.548 + text-align: center; 12.549 + padding: 40px 20px 80px 20px; 12.550 +} 12.551 + 12.552 +.year:after { 12.553 + /* content: "2007-2011"; */ 12.554 + content: "2011"; 12.555 +} 12.556 + 12.557 +/* Footer */ 12.558 + 12.559 +#footer { 12.560 + margin: 0px 80px 80px 80px; 12.561 + padding: 10px; 12.562 + background: #eaeaea; 12.563 + color: #666666; 12.564 + height: 180px; 12.565 + clear: both; 12.566 + border-radius: 8px; 12.567 + -moz-border-radius: 8px; 12.568 + -webkit-border-radius: 8px; 12.569 + -moz-box-shadow: 0 1px 3px #666; 12.570 + -webkit-box-shadow: 0 1px 3px #666; 12.571 + box-shadow: 0 1px 3px #666; 12.572 +} 12.573 +#footer a { 12.574 + background: inherit; 12.575 + color: #666666; 12.576 +} 12.577 +#footer a:hover { 12.578 + background: inherit; 12.579 + color: #333333; 12.580 +} 12.581 +#footer ul { 12.582 + list-style-type: none; 12.583 +} 12.584 +#footer li { 12.585 + padding: 2px; 12.586 +} 12.587 +#footer h4 { 12.588 + margin: 0 20px; 12.589 + font-size: 125%; 12.590 +}