tazirc annotate tools/tazirc-lb.cgi @ rev 7

Add a small CGI example to have online logs
author Christophe Lincoln <pankso@slitaz.org>
date Tue Jan 14 21:44:19 2014 +0100 (2014-01-14)
parents
children
rev   line source
pankso@7 1 #!/bin/sh
pankso@7 2 #
pankso@7 3 # Small CGI example to display TazIRC Log Bot logs.
pankso@7 4 #
pankso@7 5 . /usr/lib/slitaz/httphelper.sh
pankso@7 6
pankso@7 7 host="irc.freenode.net"
pankso@7 8 chan="slitaz"
pankso@7 9 logdir="log/$host/$chan"
pankso@7 10
pankso@7 11 # Send content type
pankso@7 12 header
pankso@7 13
pankso@7 14 # HTML Header
pankso@7 15 cat << EOT
pankso@7 16 <!DOCTYPE html>
pankso@7 17 <html lang="en">
pankso@7 18 <head>
pankso@7 19 <meta charset="utf-8" />
pankso@7 20 <title>TazIRC Log Bot</title>
pankso@7 21 <link rel="stylesheet" type="text/css" href="style.css" />
pankso@7 22 <style type="text/css">
pankso@7 23 html { height: 102%; }
pankso@7 24 body { margin: 40px 80px; font-size: 90%; }
pankso@7 25 </style>
pankso@7 26 </head>
pankso@7 27 <body>
pankso@7 28 EOT
pankso@7 29
pankso@7 30 # Handle GET actions
pankso@7 31 case " $(GET) " in
pankso@7 32 *\ log\ *)
pankso@7 33 log="$(GET log)"
pankso@7 34 echo "<h2>#${chan} $log</h2>"
pankso@7 35 IFS="|"
pankso@7 36 cat ${logdir}/${log}.log | while read time user text
pankso@7 37 do
pankso@7 38 cat << EOT
pankso@7 39 <div>
pankso@7 40 [$time] <span style="color: blue;">$user:</span> $text
pankso@7 41 </div>
pankso@7 42 EOT
pankso@7 43 done
pankso@7 44 unset IFS ;;
pankso@7 45 *)
pankso@7 46 # List all logs by date
pankso@7 47 echo "<h2>#${chan} Logs</h2>"
pankso@7 48 echo "<pre>"
pankso@7 49 for log in $(ls $logdir/*.log | sort -r -n)
pankso@7 50 do
pankso@7 51 log="$(basename ${log%.log})"
pankso@7 52 echo "<a href='?log=$log'>$log</a>"
pankso@7 53 done
pankso@7 54 echo "</pre>"
pankso@7 55 esac
pankso@7 56
pankso@7 57 # HTML Footer
pankso@7 58 cat << EOT
pankso@7 59 </body>
pankso@7 60 </html>
pankso@7 61 EOT