add script for extracting recent typedefs
[buildfarm-server.git] / cgi-bin / typedefs.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use DBI;
5
6 use vars qw($dbhost $dbname $dbuser $dbpass $dbport);
7
8 require "$ENV{BFConfDir}/BuildFarmWeb.pl";
9
10 my $dsn="dbi:Pg:dbname=$dbname";
11 $dsn .= ";host=$dbhost" if $dbhost;
12 $dsn .= ";port=$dbport" if $dbport;
13
14 my $dbh = DBI->connect($dsn,$dbuser,$dbpass) or die("$dsn,$dbuser,$dbpass,$!");
15
16 my %words;
17
18 my $sql = q{
19     select sysname, max(snapshot) as snapshot 
20     from build_status_log 
21     where branch = 'HEAD' and 
22         log_stage = 'typedefs.log' and 
23         snapshot > current_date::timestamp - interval '30 days' 
24     group by sysname
25 };
26 my $builds = $dbh->selectall_arrayref($sql, { Slice => {} });
27
28 $sql = q{
29    select log_text
30    from build_status_log
31    where sysname = ?
32      and snapshot = ?
33      and log_stage = 'typedefs.log'
34      and branch = 'HEAD'
35  };
36
37 my $sth = $dbh->prepare($sql);
38
39 foreach my $build (@$builds)
40 {
41     $sth->execute($build->{sysname},$build->{snapshot});
42     my @row = $sth->fetchrow;
43     my @typedefs = split(/\s+/,$row[0]);
44     @words{@typedefs} = 1 x @typedefs;
45 }
46
47 print "Content-Type: text/plain\n\n",
48     join("\n",sort keys %words),
49     "\n";