#! /bin/sh
#
# usage: bigeyed
# 

set -euf

mkdir -vp /tmp/bigeye
cd /tmp/bigeye

cleanup() {
  test -n "$spid" && kill -9 $spid && spid=
}

#python -m http.server 3 & server=$!
python -m SimpleHTTPServer 3 & spid=$?
trap cleanup EXIT HUP INT QUIT TERM

base64 -d>favicon.ico<<EOF
AAABAAEAICAQAAEABADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAVQAAAKoAAABVVQAAVVVVAP9VVQCqqgAAqqqqAP+qqgD//6oAVf//AKr//wD///8A
AAAAAAAAAAAAAAAAnHzMd3REQAAAAABERERHm8nMx3REQAAAAAAAAERERHmXx3dEAAAAAAAAAAAA
R0REzMREQAAAAzNLu0BAAAR0RMxEQAAAMzMURES7REAARHfEQAADMzNERERERLtEAAR3RAAAMzBE
R3dwRABEtEAER0AAMzgER3d3e0REAEtEAEQAAzGwRHMzAAAHREADtEAEAAMbBEcwAAAAAHdEADtE
AAAxS0RzAAEAAAALdEAztEADNERHMAAQAAAAALdDA7tAE0S0swAAABEAAAAHdDS7RBNLRLMAAAEA
ERAQC3M0N4QzS0tzABAQAAAAAQB0AEeHNEtLcBARABAAEAAAdDBHhBRLR3ABF1VVEREAAXRESIRE
S0dwF3FQUVUREAF0REiEd3d3wQVZQVVBQUEIh3iZhIfMzMwFlRRVVBQUC3x4iYQHd8fMAJFRQUFB
QAt6R0uEB8d0vIAJFBQUFAC3x0S7hAd4dEzIAVVBQUALd6REukcAd3hEzMgVFBQAt3dES6RAcAe4
hEd8yIiIjLd4SEtEAGcHe8xEd3fMjHd3hEzEQABmcES4hERHd3fHdETLRAAMJmYERIiIRERERESZ
tEAAzBEWYARMnIiIiIiIm0QADMchEXYAREnJycnMy0RADMybARISYABEREREtEREAMzJexAhIWEA
AERERERAAAzMebsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
EOF

hostname="`hostname`"
blink() {
  date="`date --rfc-3339=s`"
  echo $date
  # nobody will ever need more than 3 frames to initialize!
  frame=4
  device="/dev/`cd /sys/class/video4linux && ls | head -n 1`"
  mplayer -frames $frame -quiet \
      -vo jpeg \
      -tv driver=v4l2:device=$device \
      tv:// #1>/dev/null 2>/dev/null
  mv 0000000$frame.jpg  index.jpg
  cat>00000001.html<<EOF
    <!doctyle html>
    <META HTTP-EQUIV="REFRESH" CONTENT="2">
    <style type="text/css">
      body {
        background-color: black;
        color: white;
        font-family: monospace;
      }
    </style>
    <title>$hostname's bigeye</title>
    <p>$date</p>
    <p><img src="index.jpg" alt="ZOMBIECANCER" /></p>
EOF
  mv 00000001.html index.html
}

while blink; do
  sleep 1
done