OK, the simple scheme for the db plus a couple of cgi scripts that
[oota-llvm.git] / utils / webNLT.pl
1 #!/usr/bin/perl
2
3 use DBI;
4 use CGI;
5
6 $q = new CGI;
7 print $q->header();
8 print $q->start_html(-title=>"Nightly Tester DB");
9
10 unless($q->param('pwd'))
11   {
12     print $q->startform();
13     print $q->password_field(-name=>"pwd", -size=>20, -maxlength=>20);
14     print $q->submit();
15     print $q->endform();
16   }
17 else
18   {
19     # database information
20     $db="llvmalpha";
21     $host="localhost";
22     $userid="llvmdbuser";
23     $passwd=$q->param('pwd');
24     $connectionInfo="dbi:mysql:$db;$host";
25     
26     # make connection to database
27     $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die DBI->errstr;
28     $query = "Select DISTINCT(NAME) from Tests";
29     my $sth = $dbh->prepare($query) || die "Can't prepare statement: $DBI::errstr";
30     my $rc = $sth->execute or die DBI->errstr;
31     while (($n) = $sth->fetchrow_array)
32       {
33         push @names, ($n);
34 #        print "$n<P>";
35       }
36     $query = "Select DISTINCT(TEST) from Tests";
37     my $sth = $dbh->prepare($query) || die "Can't prepare statement: $DBI::errstr";
38     my $rc = $sth->execute or die DBI->errstr;
39     while (($n) = $sth->fetchrow_array)
40       {
41         push @tests, ($n);
42 #        print "$n\n";
43       }
44
45 #    print join "<BR>", @names;
46
47     print $q->startform();
48     print $q->scrolling_list(-name=>"test", -values=>\@tests, -multiple=>'true');
49     print "<P>";
50     print $q->scrolling_list(-name=>"name", -values=>\@names, -multiple=>'true');
51     print "<P>";
52     print $q->submit();
53     print $q->hidden("pwd", $q->param('pwd'));
54     print $q->endform();
55
56     # disconnect from database
57     $dbh->disconnect;
58
59     #now generate the urls to the chart
60     if ($q->param('test') && $q->param('name'))
61       {
62         my @names = $q->param('name');
63         my @tests = $q->param('test');
64         $str = "pwd=" . $q->param('pwd');
65         $count = 0;
66         while (@names)
67           {
68             $n = pop @names;
69             while (@tests)
70               {
71                 $t = pop @tests;
72                 $str .= "&t$count=$t&n$count=$n";
73                 $count++;
74               }
75           }
76         print "<img src=\"cgiplotNLT.pl?$str\">";
77       }
78   }
79
80 print $q->end_html();