#!/usr/bin/perl
#
# slightly modified by Freek Reedeker 2009
#
# copyright Martin Pot 2003
# http://martybugs.net/linux/hddtemp.cgi
#
# sensormc.cgi

my @graphs;
my $numberOfColumns, $currentColumn;
$numberOfColumns = 2;

my ($name, $descr);
# Get available daily graphs
# If a daily graph exists in the currrent directory it will be shown.
# To remove a daily graph go to the /usr/local/bin/lmsensor.pl script
# If you comment the sensor out of the "to monitor" list, its daily graph 
# will be deleted  
my $availableGraphs = `ls *-day.png`;
# Push them on @graphs array
while($availableGraphs =~ m/\G(.*)-.*.png\n/g) 
{
	push (@graphs, $1);	
#	print "<!--$1-->"."\n";
}

# get the server name (or you could hard code some description here)
my $svrname = $ENV{'SERVER_NAME'};

# get url parameters
my @values = split(/&/, $ENV{'QUERY_STRING'});
foreach my $i (@values) 
{
	($varname, $mydata) = split(/=/, $i);
	if ($varname eq 'trend')
	{
		$name = $mydata;
	}
}

if ($name eq '')
{ 
	$descr = "summary"; 
}
else
{ 
	$descr = " ".$name." ";
	# replace %20 codes with <space> in name
	$descr =~ s/%20/ /g;
}

print "Content-type: text/html;\n\n";
print <<END
<html>
<head>
  <TITLE>$svrname Sensors :: $descr</TITLE>
  <META HTTP-EQUIV="Refresh" CONTENT="300">
  <META HTTP-EQUIV="Cache-Control" content="no-cache">
  <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
  <style>
    body { font-family: Verdana,Tahoma,Arial,Helvetica; font-size:9pt}
    .header { font-size: 16pt; font-weight: 900; }
  </style>
</head>
<body bgcolor="#ffffff" topMargin='5'>

<span class='header'>$svrname Sensors :: $descr</span>
<br><br>
END
;

if ($name eq '')
{
	print "Daily Graphs (5 minute averages)";
	print "<br>";
	$currentColumn = 1;
	#print start of table
	print "<table border='0'>";
	#print start of table row
	print "<tr>";
	foreach $graph (@graphs)
	{
		print "<td>";
		print "<a href='?trend=$graph'><img src='$graph-day.png' border='1'></a>";
		#print "<br>";
		#print "<br>";
		print "</td>";
		# Check for last column, continue on next row.
		if ($currentColumn++ == $numberOfColumns){
			$currentColumn = 1;		
			print "</tr><tr>";
		}		
	}
	# fill the remaining cells of the last row with empty data	
	while (($currentColumn-1) % $numberOfColumns){
			$currentColumn++;		
			print "<td></td>";
	}	
	print "</tr>";
	print "</table>";	
}
else
{
	print <<END
Daily Graph (5 minute averages)
<br>
<img src='$name-day.png'>
<br>
Weekly Graph (30 minute averages)
<br>
<img src='$name-week.png'>
<br>
Monthly Graph (2 hour averages)
<br>
<img src='$name-month.png'>
<br>
Yearly Graph (12 hour averages)
<br>
<img src='$name-year.png'>
END
;
}

print <<END
<br><br>
<a 
href='http://oss.oetiker.ch/rrdtool/'>
 <img src='http://oss.oetiker.ch/rrdtool/.pics/rrdtool.gif' 
border='0'></a>
</body>
</html>
END
;



