#!/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 $TBOX = lc($req->param('tbox')); my $DAYS = lc($req->param('days')); my $DATAFILE = "db/$TESTNAME/$TBOX"; sub show_data { die "$TBOX: no data file found." unless -e $DATAFILE; # # At some point we might want to clip the data printed # based on days=n. # Set scaling for x-axis (time) #my $today; #my $n_days_ago; # Get current time, $today. #my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat) = localtime(); #$year += 1900; #$mon += 1; #$today = sprintf "%04d:%02d:%02d:%02d:%02d:%02d", $year, $mon, $mday, $hour, $min, $sec; # Calculate date $DAYS before $today. #my ($year2, $mon2, $mday2) = Add_Delta_Days($year, $mon, $mday, -$DAYS); #$n_days_ago= sprintf "%04d:%02d:%02d:%02d:%02d:%02d", $year2, $mon2, $mday2, $hour, $min, $sec; print "

Data for $TBOX $TESTNAME

\n"; # links print "
  • plot points
  • \n"; print "
  • raw points
  • \n"; print "
    \n"; # Print data that got plotted. print "Data in plot form: #, (t, y)
    \n"; open DATA, "$DATAFILE" or die "Couldn't open file, $DATAFILE: $!"; my $i = 0; print "
    \n";
      while () {
        my @line = split('\t',$_);
        $line_string = sprintf "%4d %s %s\n", $i, @line[0], @line[1];
        print "$line_string";
        $i++;
      }
      print "
    \n"; close DATA; # Print data again, in raw format. print "
    \n"; print "
    \n"; print "
    Data in raw form: #, (t, y, opaque data, ip, user agent)
    \n"; open DATA, "$DATAFILE" or die "Couldn't open file, $DATAFILE: $!"; $i = 0; print "
    \n";
      while () {
        chomp($_);
        my $line_string = sprintf "%4d %s\n", $i, $_;
        print "$line_string";
        $i++;
      }
      print "
    \n"; close DATA; } # main { print "Content-type: text/html\n\n\n"; print "rawdata for $TBOX $TESTNAME
    \n"; print "\n"; if(!$TESTNAME) { print "Error: need testname."; } elsif(!$TBOX) { print "Error: need machine name."; } else { show_data(); } print "\n"; print "\n"; } exit 0;