#! /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