cookutils annotate web/cookiso.cgi @ rev 813

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