#!/bin/bash

XFORMAT="%d.%m\n%H:%M"
XFIRST="23.03.03.18:35"
XRANGEFROM="`date -d "-1 day" +%d.%m.%y.%H:%M`"
XRANGETO="`date +%d.%m.%y.%H:%M`"
XRANGEFROM=$XFIRST
XRANGEFROM="`date -d "-7 days" +%d.%m.%y.%H:%M`"
IMAGENAME="test.png"
SIZEX=3.2
SIZEY=1.6
SIZET=medium

function setlarge ()
{ SIZEX=1.6
  SIZEY=1.2
  SIZET=medium
}

function setsmall ()
{ SIZEX=1.1
  SIZEY=0.5
  SIZET=small
}



function makegraphfile ()
{
gnuplot << EOF
set output "tmp.pnm"
set terminal pbm $SIZET color
set size $SIZEX,$SIZEY

set title "$TITLE"
set ylabel "Temperature ['C]"

set key left bottom Left

set xdata time
set format x "$XFORMAT"

set timefmt "%d.%m.%y.%H:%M"
set xrange ["$XRANGEFROM":"$XRANGETO"]

set timefmt "%y%m%d-%H%M"

set ytics 5
set mytics 5
set grid

plot "therm.log" using 1:2 title "External" with lines lt 1, \
     "therm.log" using 1:3 title "Internal" with lines lt 3;

EOF

# Anally retentive folks from GNU won't implement GIF support,
# so we are improvising here, as many browsers (think PDAs)
# don't support PNG and this kind of images looks poor in JPG.
ppmtogif tmp.pnm 2>/dev/null > $IMAGENAME
rm -f tmp.pnm
}


XRANGEFROM="`date -d "-1 day" +%d.%m.%y.%H:%M`"
TITLE="Temperature - last 24 hours"
XFORMAT="%d.%b\n%H:%M"
IMAGENAME=last24h.gif
setlarge
makegraphfile
IMAGENAME=last24h.t.gif
setsmall
makegraphfile

XRANGEFROM="`date -d "-7 days" +%d.%m.%y.%H:%M`"
TITLE="Temperature - last 7 days"
XFORMAT="%d.%b\n%H:%M"
IMAGENAME=last7d.gif
setlarge
makegraphfile
IMAGENAME=last7d.t.gif
setsmall
makegraphfile

#limit the load by doing this only once per day
if [ "`date +%H`" == "03" ]; then
if [ "`date +%M`" == "00" ]; then
  XRANGEFROM="$XFIRST"
  TITLE="Temperature - all measurements"
  XFORMAT="%d.%b"
  IMAGENAME=lastall.gif
  setlarge
  makegraphfile
  IMAGENAME=lastall.t.gif
  setsmall
  makegraphfile
fi
fi

