#!/bin/bash
#
#    gather.sh
#	gather the data.
#	run from cron every 5 minutes.
#	Don't run manually as root or else files in data/ will get
#	root ownership then your (non-root) cron daemon won't work
#
#    Copyright (C) 2001  Philip Edelbrock
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#    MA 02110-1301 USA.
#

# generic tellerstats init BEGIN

# get config information from /etc/tellerstats.conf or whereever we are pointed

if [ -z "$TELLERSTATS_CONF" ]
then
   TELLERSTATS_CONF=/etc/tellerstats.conf
fi   

export TELLERSTATS_CONF

if [ ! -r $TELLERSTATS_CONF ]
then
   echo "$0: Could not find config file $TELLERSTATS_CONF"
   exit 1
fi   

. $TELLERSTATS_CONF

if [ ! -d $DBPATH ]
then
   echo "$0: data directory $DBPATH does not exist"
   exit 1
fi

if [ ! -d $SENSORPATH ]
then
   echo "$0: sensor information directory $SENSORPATH does not exist."
   exit 1
fi

if [ ! -d $HTMLROOT ]
then
   echo "$0: The root of your webserver - $HTMLROOT - does not exist..bailing out"
   exit 1
fi

if [ ! -d $HTMLPATH ]
then
   echo "$0: The place where we keep HTML files and pictures - $HTMLPATH - does not exist..bailing out"
   exit 1
fi

if [ ! -r $GNUPLOTSCRIPT_TMPL ]
then
   echo "$0: The gnuplot script template $GNUPLOTSCRIPT_TMPL does not exist..bailing out"
   exit 1
fi

export DBPATH SENSORPATH TEMPPATH HTMLROOT HTMLPATH GNUPLOTSCRIPT_TMPL

if [ -n "$DEBUG" ]
then
   echo "DBPATH = $DBPATH"
   echo "SENSORPATH = $SENSORPATH"
   echo "TEMPPATH = $TEMPPATH"
   echo "HTMLROOT = $HTMLROOT"
   echo "HTMLPATH = $HTMLPATH"
   echo "GNUPLOTSCRIPT_TMPL = $GNUPLOTSCRIPT_TMPL"
fi

# generic tellerstats init END

# From /etc/sensors.conf for the W83781D:
#
#    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
#    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
#    compute in5 -(210/60.4)*@  ,  -@/(210/60.4)
#    compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)
#

#date=yyyyMMddHHmmss, the same format gnuplot expects for the x-axis
DATE=`date +%Y%m%d%H%M%S`

T=`cat $SENSORPATH/in0   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/cpu1V

T=`cat $SENSORPATH/in1   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/cpu2V

T=`cat $SENSORPATH/in2   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/ThreeVOLT

T=`cat $SENSORPATH/in3   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
T=`echo $T \* 1.68 | bc`
echo $DATE $T >> $DBPATH/FiveVOLT

T=`cat $SENSORPATH/in4   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
T=`echo $T \* 3.8 | bc`
echo $DATE $T >> $DBPATH/TwelveVOLT

T=`cat $SENSORPATH/in5   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
T=`echo $T \* -3.477 | bc`
echo $DATE $T >> $DBPATH/NegTwelveVOLT

T=`cat $SENSORPATH/in6   | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
T=`echo $T \* -1.505 | bc`
echo $DATE $T >> $DBPATH/NegFiveVOLT

T=`cat $SENSORPATH/temp1 | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/mb_temp

T=`cat $SENSORPATH/temp2 | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/cpu_temp

T=`cat $SENSORPATH/fan1  | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/fanone

T=`cat $SENSORPATH/fan2  | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/fantwo

T=`cat $SENSORPATH/fan3  | perl -p -e 's/^.+ ([^ ]+)$/$1/'`
echo $DATE $T >> $DBPATH/fanthree

T=`cat /proc/loadavg     | perl -p -e 's/^([^ ]+) .+$/$1/'`
echo $DATE $T >> $DBPATH/load

exit 0
