cookutils annotate web/cookiso.cgi @ rev 334
cookiso.cgi: display a summary for distro
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sat Mar 17 15:03:23 2012 +0100 (2012-03-17) |
parents | 516a5e17e296 |
children | 103ba393cb28 |
rev | line source |
---|---|
pankso@319 | 1 #!/bin/sh |
pankso@319 | 2 # |
pankso@319 | 3 # SliTaz Cookiso CGI/web interface. |
pankso@319 | 4 # |
pankso@319 | 5 echo "Content-Type: text/html" |
pankso@319 | 6 echo "" |
pankso@319 | 7 |
pankso@319 | 8 [ -f "/etc/slitaz/cook.conf" ] && . /etc/slitaz/cook.conf |
pankso@319 | 9 [ -f "cook.conf" ] && . ./cook.conf |
pankso@319 | 10 |
pankso@319 | 11 # Cookiso DB files. |
pankso@319 | 12 cache="$CACHE/cookiso" |
pankso@319 | 13 iso="$SLITAZ/iso" |
pankso@319 | 14 activity="$cache/activity" |
pankso@319 | 15 command="$cache/command" |
pankso@319 | 16 rollog="$cache/rolling.log" |
pankso@327 | 17 synclog="$cache/rsync.log" |
pankso@319 | 18 |
pankso@319 | 19 # |
pankso@319 | 20 # Functions |
pankso@319 | 21 # |
pankso@319 | 22 |
pankso@319 | 23 # Put some colors in log and DB files. |
pankso@319 | 24 syntax_highlighter() { |
pankso@319 | 25 case $1 in |
pankso@319 | 26 log) |
pankso@319 | 27 sed -e 's#OK#<span class="span-ok">OK</span>#g' \ |
pankso@319 | 28 -e 's#Failed#<span class="span-red">Failed</span>#g' \ |
pankso@319 | 29 -e 's|\(Filesystem size:\).*G\([0-9\.]*M\) *$|\1 \2|' \ |
pankso@319 | 30 -e 's|.\[1m|<b>|' -e 's|.\[0m|</b>|' -e 's|.\[[0-9Gm;]*||g' ;; |
pankso@319 | 31 activity) |
pankso@319 | 32 sed s"#^\([^']* : \)#<span class='log-date'>\0</span>#"g ;; |
pankso@319 | 33 esac |
pankso@319 | 34 } |
pankso@319 | 35 |
pankso@319 | 36 # Latest build pkgs. |
pankso@319 | 37 list_isos() { |
pankso@319 | 38 cd $iso |
pankso@319 | 39 ls -1t *.iso | head -6 | \ |
pankso@319 | 40 while read file |
pankso@319 | 41 do |
pankso@319 | 42 echo -n $(stat -c '%y' $file | cut -d . -f 1 | sed s/:[0-9]*$//) |
pankso@319 | 43 echo " : $file" |
pankso@319 | 44 done |
pankso@319 | 45 } |
pankso@319 | 46 |
paul@325 | 47 # xHTML header. Pages can be customized with a separate html.header file. |
pankso@319 | 48 if [ -f "header.html" ]; then |
pankso@319 | 49 cat header.html | sed s'/Cooker/ISO Cooker/' |
pankso@319 | 50 else |
pankso@319 | 51 cat << EOT |
pankso@319 | 52 <!DOCTYPE html> |
pankso@319 | 53 <html xmlns="http://www.w3.org/1999/xhtml"> |
pankso@319 | 54 <head> |
pankso@319 | 55 <title>SliTaz ISO Cooker</title> |
pankso@319 | 56 <meta charset="utf-8" /> |
pankso@319 | 57 <link rel="shortcut icon" href="favicon.ico" /> |
pankso@319 | 58 <link rel="stylesheet" type="text/css" href="style.css" /> |
pankso@319 | 59 </head> |
pankso@319 | 60 <body> |
pankso@319 | 61 |
pankso@319 | 62 <div id="header"> |
pankso@319 | 63 <div id="logo"></div> |
pankso@319 | 64 <h1><a href="cookiso.cgi">SliTaz ISO Cooker</a></h1> |
pankso@319 | 65 </div> |
pankso@319 | 66 |
pankso@319 | 67 <!-- Content --> |
pankso@319 | 68 <div id="content"> |
pankso@319 | 69 EOT |
pankso@319 | 70 fi |
pankso@319 | 71 |
pankso@319 | 72 # |
pankso@319 | 73 # Load requested page |
pankso@319 | 74 # |
pankso@319 | 75 |
pankso@319 | 76 case "${QUERY_STRING}" in |
pankso@319 | 77 distro=*) |
pankso@319 | 78 distro=${QUERY_STRING#distro=} |
pankso@332 | 79 if echo $distro | fgrep core-4in1; then |
pankso@332 | 80 ver=${distro%-core-4in1} |
pankso@332 | 81 log=$iso/slitaz-$ver.log |
pankso@332 | 82 else |
pankso@332 | 83 log=$iso/slitaz-$distro.log |
pankso@332 | 84 fi |
pankso@319 | 85 . $SLITAZ/flavors/${distro#*-}/receipt |
pankso@319 | 86 echo "<h2>Distro: $distro</h2>" |
pankso@319 | 87 echo "<p>Description: $SHORT_DESC</p>" |
pankso@334 | 88 echo '<h3>Summary</h3>' |
pankso@334 | 89 echo '<pre>' |
pankso@334 | 90 fgrep "Build date" $log |
pankso@334 | 91 fgrep "Packages" $log |
pankso@334 | 92 fgrep "Rootfs size" $log |
pankso@334 | 93 fgrep "ISO image size" $log |
pankso@334 | 94 echo '</pre>' |
pankso@319 | 95 echo '<h3>Cookiso log</h3>' |
pankso@319 | 96 echo '<pre>' |
pankso@319 | 97 cat $log | syntax_highlighter log |
pankso@319 | 98 echo '</pre>' ;; |
pankso@319 | 99 *) |
pankso@319 | 100 # Main page with summary. |
pankso@319 | 101 echo -n "Running command : " |
pankso@319 | 102 if [ -f "$command" ]; then |
pankso@319 | 103 cat $command |
pankso@319 | 104 else |
pankso@319 | 105 echo "Not running" |
pankso@319 | 106 fi |
pankso@319 | 107 cat << EOT |
pankso@319 | 108 <h2>Activity</h2> |
pankso@319 | 109 <pre> |
pankso@319 | 110 $(tac $activity | head -n 12 | syntax_highlighter activity) |
pankso@319 | 111 </pre> |
pankso@319 | 112 |
pankso@319 | 113 <h2>Latest ISO</h2> |
pankso@319 | 114 <pre> |
pankso@319 | 115 $(list_isos | syntax_highlighter activity) |
pankso@319 | 116 </pre> |
pankso@319 | 117 EOT |
pankso@319 | 118 # Rolling Bot log. |
pankso@319 | 119 if [ -f "$rollog" ]; then |
pankso@319 | 120 echo "<h2>Rolling log</h2>" |
pankso@319 | 121 echo '<pre>' |
pankso@319 | 122 cat $rollog |
pankso@319 | 123 echo '</pre>' |
pankso@326 | 124 fi |
pankso@326 | 125 # Rsync log. |
pankso@326 | 126 if [ -f "$synclog" ]; then |
pankso@326 | 127 echo "<h2>Rsync log</h2>" |
pankso@326 | 128 echo '<pre>' |
pascal@331 | 129 awk '{ |
pascal@331 | 130 if (/\/s/) h=$0; |
pascal@331 | 131 else { |
pascal@331 | 132 if (h!="") print h; |
pascal@331 | 133 h=""; |
pascal@331 | 134 print; |
pascal@331 | 135 } |
pascal@331 | 136 }'< $synclog |
pankso@326 | 137 echo '</pre>' |
pankso@319 | 138 fi ;; |
pankso@319 | 139 esac |
pankso@319 | 140 |
pankso@319 | 141 # Close xHTML page |
pankso@319 | 142 cat << EOT |
pankso@319 | 143 </div> |
pankso@319 | 144 |
pankso@319 | 145 <div id="footer"> |
pankso@319 | 146 <a href="http://www.slitaz.org/">SliTaz Website</a> |
pankso@319 | 147 <a href="cookiso.cgi">Cookiso</a> |
pankso@319 | 148 <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.en.html"> |
pankso@319 | 149 Documentation</a> |
pankso@319 | 150 </div> |
pankso@319 | 151 |
pankso@319 | 152 </body> |
pankso@319 | 153 </html> |
pankso@319 | 154 EOT |
pankso@319 | 155 |
pankso@319 | 156 exit 0 |