#! /bin/sh
LC_ALL=C
LANG=C
LASTDAY=$(echo $(date +%s) - 86400 | bc)
LASTWEEK=$(echo $(date +%s) - 604800 | bc)
LASTMONTH=$(echo $(date +%s) - 2592000 | bc)
LASTYEAR=$(echo $(date +%s) - 31572135 | bc)
LAST5YEARS=$(echo $(date +%s) - 157860675 | bc)
LAST10YEARS=$(echo $(date +%s) - 315721350 | bc)

GRAPHDAY=testing-day.png
GRAPHWEEK=testing-week.png
GRAPHMONTH=testing-month.png
GRAPHYEAR=testing-year.png
GRAPH5YEARS=testing-5years.png
GRAPH10YEARS=testing-10years.png
STATFILE=testing.rrd

. ../debian-releases.sh

get_data() {
./testing.py | xargs rrdtool update $STATFILE
}

create_rrd() {
rrdtool create testing.rrd -s 3600 \
	DS:tryenter:GAUGE:7200:0:10000 \
	DS:tryleave:GAUGE:7200:0:10000 \
	DS:enter:GAUGE:7200:0:10000 \
	DS:leave:GAUGE:7200:0:10000 \
	RRA:AVERAGE:0.5:1:744 \
	RRA:AVERAGE:0.5:24:1100
}

do_graph() {
rrdtool graph try-${1} --start $2 --end $(date +%s) \
	--width 600 --height 150 \
	--vertical-label packages --title "Packages trying: $3" -E \
	${RRDTOOL_ARGS} \
	DEF:tryenter=$STATFILE:tryenter:AVERAGE \
		VDEF:ltryenter=tryenter,LAST \
		VDEF:mintryenter=tryenter,MINIMUM \
		VDEF:maxtryenter=tryenter,MAXIMUM \
		VDEF:avgtryenter=tryenter,AVERAGE \
		LINE2:tryenter#C62BD9:"Packages trying to enter\:" \
		GPRINT:ltryenter:"%3.0lf" \
		GPRINT:mintryenter:"\tMin\: %3.0lf" \
		GPRINT:maxtryenter:"\tMax\: %3.0lf" \
		GPRINT:avgtryenter:"\tAvg\: %3.0lf\j" \
	DEF:temptryleave=$STATFILE:tryleave:AVERAGE \
  CDEF:tryleave=temptryleave,-1,* \
		VDEF:ltryleave=tryleave,LAST \
		VDEF:mintryleave=tryleave,MINIMUM \
		VDEF:maxtryleave=tryleave,MAXIMUM \
		VDEF:avgtryleave=tryleave,AVERAGE \
		LINE2:tryleave#D9382B:"Packages trying to leave\:" \
		GPRINT:ltryleave:"%3.0lf" \
		GPRINT:mintryleave:"\tMin\: %3.0lf" \
		GPRINT:maxtryleave:"\tMax\: %3.0lf" \
		GPRINT:avgtryleave:"\tAvg\: %3.0lf\j" \
  VRULE:${LENNY_RELEASE}#${LENNY_RELEASE_COLOR}:"Lenny release"\
  VRULE:${SQUEEZE_FREEZE}#${SQUEEZE_FREEZE_COLOR}:"Squeeze freeze" \
  VRULE:${SQUEEZE_RELEASE}#${SQUEEZE_RELEASE_COLOR}:"Squeeze release" \
  VRULE:${WHEEZY_FREEZE}#${SQUEEZE_FREEZE_COLOR}:"Wheezy freeze" \
  VRULE:${WHEEZY_RELEASE}#${WHEEZY_RELEASE_COLOR}:"Wheezy release"

rrdtool graph ${1} --start $2 --end $(date +%s) \
	--width 600 --height 150 \
	--vertical-label packages --title "Packages: $3" -E \
	${RRDTOOL_ARGS} \
	DEF:enter=$STATFILE:enter:AVERAGE \
		VDEF:lenter=enter,LAST \
		VDEF:minenter=enter,MINIMUM \
		VDEF:maxenter=enter,MAXIMUM \
		VDEF:avgenter=enter,AVERAGE \
		LINE2:enter#C62BD9:"Packages entering\:" \
		GPRINT:lenter:"%3.0lf" \
		GPRINT:minenter:"\tMin\: %3.0lf" \
		GPRINT:maxenter:"\tMax\: %3.0lf" \
		GPRINT:avgenter:"\tAvg\: %3.0lf\j" \
	DEF:templeave=$STATFILE:leave:AVERAGE \
  CDEF:leave=templeave,-1,* \
		VDEF:lleave=leave,LAST \
		VDEF:minleave=leave,MINIMUM \
		VDEF:maxleave=leave,MAXIMUM \
		VDEF:avgleave=leave,AVERAGE \
		LINE2:leave#D9382B:"Packages leaving\:" \
		GPRINT:lleave:"%3.0lf" \
		GPRINT:minleave:"\tMin\: %3.0lf" \
		GPRINT:maxleave:"\tMax\: %3.0lf" \
		GPRINT:avgleave:"\tAvg\: %3.0lf\j" \
  VRULE:${LENNY_RELEASE}#${LENNY_RELEASE_COLOR}:"Lenny release"\
  VRULE:${SQUEEZE_FREEZE}#${SQUEEZE_FREEZE_COLOR}:"Squeeze freeze" \
  VRULE:${SQUEEZE_RELEASE}#${SQUEEZE_RELEASE_COLOR}:"Squeeze release" \
  VRULE:${WHEEZY_FREEZE}#${SQUEEZE_FREEZE_COLOR}:"Wheezy freeze" \
  VRULE:${WHEEZY_RELEASE}#${WHEEZY_RELEASE_COLOR}:"Wheezy release"
}

update_page() {
NOW=$(date -R)
sed 's/\$id\$/'"$NOW"'/' index.tmpl > index.html
}

#Script:

#create_rrd
get_data
do_graph $GRAPHDAY $LASTDAY day
do_graph $GRAPHWEEK $LASTWEEK week
do_graph $GRAPHMONTH $LASTMONTH month
do_graph $GRAPHYEAR $LASTYEAR year
RRDTOOL_ARGS="--x-grid MONTH:1:YEAR:1:YEAR:1:31536000:%Y"
do_graph $GRAPH5YEARS $LAST5YEARS "5 years"
do_graph $GRAPH10YEARS $LAST10YEARS "10 years"
update_page
