cookutils annotate web/cookiso.cgi @ rev 888

cooklinux: add --allno to build a minimal/custom bzImage
author Christophe Lincoln <pankso@slitaz.org>
date Tue Mar 07 10:44:30 2017 +0100 (2017-03-07)
parents a3a05fc499d0
children 4e8c86306ce2
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@862 66 <meta charset="UTF-8">
pankso@319 67 <title>SliTaz ISO Cooker</title>
al@862 68 <link rel="shortcut icon" href="favicon.ico">
al@862 69 <link rel="stylesheet" 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>'
pascal@844 103 echo "<h3>Cookiso log $(stat -c %y $log | sed 's/:..\..*//')</h3>"
pascal@844 104 for i in $(ls -t $log.*); do
pascal@844 105 echo -n "<a href=\"?log=$(basename $i)\">"
pascal@844 106 echo "$(stat -c %y $i | sed 's/ .*//')</a>"
pascal@844 107 done
pankso@319 108 echo '<pre>'
pankso@319 109 cat $log | syntax_highlighter log
pankso@319 110 echo '</pre>' ;;
al@728 111
pascal@844 112 log=*)
pascal@844 113 log=$iso/${QUERY_STRING#log=}
pascal@844 114 if [ -s $log ]; then
pascal@845 115 echo "<h3>Cook log $(stat -c %y $log | sed 's/:..\..*//')</h3>"
pascal@844 116 echo '<pre>'
pascal@844 117 cat $log | syntax_highlighter log
pascal@844 118 echo '</pre>'
pascal@844 119 fi ;;
pascal@844 120
pankso@319 121 *)
pankso@319 122 # Main page with summary.
al@728 123 echo -n 'Running command : '
pankso@319 124 if [ -f "$command" ]; then
pankso@319 125 cat $command
pankso@319 126 else
al@728 127 echo 'Not running'
pankso@319 128 fi
al@728 129 cat <<EOT
pankso@319 130 <h2>Activity</h2>
pankso@319 131 <pre>
pankso@319 132 $(tac $activity | head -n 12 | syntax_highlighter activity)
pankso@319 133 </pre>
pankso@319 134
pankso@319 135 <h2>Latest ISO</h2>
pankso@319 136 <pre>
pankso@319 137 $(list_isos | syntax_highlighter activity)
pankso@319 138 </pre>
pankso@319 139 EOT
pankso@319 140 # Rolling Bot log.
pankso@319 141 if [ -f "$rollog" ]; then
al@728 142 echo '<h2>Rolling log</h2>'
pankso@319 143 echo '<pre>'
pankso@319 144 cat $rollog
pankso@319 145 echo '</pre>'
pankso@326 146 fi
pankso@326 147 # Rsync log.
pankso@326 148 if [ -f "$synclog" ]; then
al@728 149 echo '<h2>Rsync log</h2>'
pankso@326 150 echo '<pre>'
pascal@331 151 awk '{
pascal@331 152 if (/\/s/) h=$0;
pascal@331 153 else {
pascal@331 154 if (h!="") print h;
pascal@331 155 h="";
pascal@331 156 print;
pascal@331 157 }
pascal@331 158 }'< $synclog
pankso@326 159 echo '</pre>'
pankso@319 160 fi ;;
pankso@319 161 esac
pankso@319 162
al@728 163
pankso@319 164 # Close xHTML page
al@728 165
al@728 166 cat <<EOT
pankso@319 167 </div>
pankso@319 168
pankso@319 169 <div id="footer">
pankso@319 170 <a href="http://www.slitaz.org/">SliTaz Website</a>
pankso@319 171 <a href="cookiso.cgi">Cookiso</a>
al@862 172 <a href="doc/cookutils/cookutils.en.html">Documentation</a>
pankso@319 173 </div>
pankso@319 174
pankso@319 175 </body>
pankso@319 176 </html>
pankso@319 177 EOT
pankso@319 178
pankso@319 179 exit 0