#!/usr/bin/perl
# -*- Mode: perl; indent-tabs-mode: nil -*-
use CGI::Carp qw(fatalsToBrowser);
use CGI::Request;
use Date::Calc qw(Add_Delta_Days); # http://www.engelschall.com/u/sb/download/Date-Calc/
my $req = new CGI::Request;
my $TESTNAME = lc($req->param('testname'));
my $UNITS = lc($req->param('units'));
my $TBOX = lc($req->param('tbox'));
my $AUTOSCALE = lc($req->param('autoscale'));
my $SIZE = lc($req->param('size'));
my $DAYS = lc($req->param('days'));
my $LTYPE = lc($req->param('ltype'));
my $POINTS = lc($req->param('points'));
#
# Testing only:
#
#$TESTNAME = "testname";
#$UNITS = "units";
#$TBOX = "tbox";
#$AUTOSCALE = 1;
#$DAYS = 1;
sub make_filenames_list {
my ($dir) = @_;
my @result;
if (-d "$dir") {
chdir "$dir";
while(<*>) {
if( $_ ne 'config.txt' ) {
push @result, $_;
}
}
chdir "../..";
}
return @result;
}
# Print out a list of testnames in db directory
sub print_testnames {
my ($tbox, $autoscale, $days, $units, $ltype, $points) = @_;
# HTTP header
print "Content-type: text/html\n\n\n";
print "
testnames";
print "testnames
";
print "";
print "Select one of the following tests: |
";
print "\n";
print " \n";
my @machines = make_filenames_list("db");
my $machines_string = join(" ", @machines);
foreach (@machines) {
print "- $_\n";
}
print "
|
|
";
}
# Print out a list of machines in db/ directory, with links.
sub print_machines {
my ($testname, $autoscale, $days, $units, $ltype, $points) = @_;
# HTTP header
print "Content-type: text/html\n\n\n";
print "$TESTNAME machines";
print "$TESTNAME machines:
";
print "";
print "Select one of the following machines: |
";
print "\n";
print " \n";
my @machines = make_filenames_list("db/$testname");
my $machines_string = join(" ", @machines);
foreach (@machines) {
print "- $_\n";
}
print "
|
|
";
}
sub show_graph {
# HTTP header
print "Content-type: text/html\n\n\n";
print "$TBOX $TESTNAME
\n";
print "\n";
print "\n";
print "\n";
# Scale Y-axis
print "\n";
print "\n";
if($AUTOSCALE) {
print "Y-axis: (zoom|";
print "100%";
print ") \n";
} else {
print "Y-axis: (";
print "zoom";
print "|100%) \n";
}
print "\n";
print " | \n";
# Days, Time-axis
print "\n";
print "\n";
print " | \n";
# Line style (lines|steps)
print "\n";
print "\n";
print "Style:";
if($LTYPE eq "steps") {
print "(";
print "lines";
print "|steps";
print ")";
} else {
print "(lines|";
print "steps";
print ")";
}
print "\n";
print " | \n";
# Points (on|off)
print "\n";
print "\n";
print "Points:";
if($POINTS) {
print "(on|";
print "off";
print ")\n";
} else {
print "(";
print "on";
print "|off)\n";
}
print "\n";
print " | \n";
print "
\n";
print "
\n";
print "
\n";
# graph
print "";
print "
\n";
print "
\n";
print "\n";
print "\n";
}
if(!$TESTNAME) {
print_testnames($TBOX, $AUTOSCALE, $DAYS, $UNITS, $LTYPE, $POINTS);
} elsif(!$TBOX) {
print_machines($TESTNAME, $AUTOSCALE, $DAYS, $UNITS, $LTYPE, $POINTS);
} else {
show_graph();
}
exit 0;