cookutils annotate web/cookiso.cgi @ rev 778

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