blob: 843a63ffb7fb635031a930a0da7212716539269d [file] [log] [blame]
#!/usr/bin/perl
# Copyright (c) 2006 Eclipse Foundation, made available under EPL v1.0
# Contributors Ward Cunningham, Bjorn Freeman-Benson
use strict;
print "Content-type: text/plain\n\n";
my ($year) = `date` =~ /(\d\d\d\d)/;
my $log;
my $site = "www.eclipse.org";
my $prog_companies = "projects/web-api/commit-companies.php";
my $prog_people = "projects/web-api/commit-projects-committers.php";
my %data;
my %companies;
query_companies();
query_people();
report();
sub query_companies {
my $sockaddr = 'S n a4 x8';
my $AF_INET = 2;
my $SOCK_STREAM = 1;
chop(my $hostname = `hostname`);
my ($name, $aliases, $proto) = getprotobyname('tcp');
my ($name, $aliases, $type, $len, $thisaddr) = gethostbyname($hostname);
my ($name, $aliases, $type, $len, $thataddr) = gethostbyname($site);
my $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
my $that = pack($sockaddr, $AF_INET, 80, $thataddr);
socket (S, $AF_INET, $SOCK_STREAM, $proto) || die "socket: $!";
bind(S, $this) || die "bind: $!";
connect(S, $that) || die "connect: $!";
select(S);
$| = 1;
print S "GET /$prog_companies\r\n";
select(STDOUT);
while (<S>) {
if (/^#/) {
$log .= "$_<br>";
next;
}
chomp;
my ($person,$name1,$name2) = split /\t/;
$companies{$person} = $name1 . $name2;
}
}
sub query_people {
my $sockaddr = 'S n a4 x8';
my $AF_INET = 2;
my $SOCK_STREAM = 1;
chop(my $hostname = `hostname`);
my ($name, $aliases, $proto) = getprotobyname('tcp');
my ($name, $aliases, $type, $len, $thisaddr) = gethostbyname($hostname);
my ($name, $aliases, $type, $len, $thataddr) = gethostbyname($site);
my $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
my $that = pack($sockaddr, $AF_INET, 80, $thataddr);
socket (S, $AF_INET, $SOCK_STREAM, $proto) || die "socket: $!";
bind(S, $this) || die "bind: $!";
connect(S, $that) || die "connect: $!";
select(S);
$| = 1;
print S "GET /$prog_people\r\n";
select(STDOUT);
while (<S>) {
if (/^#/) {
$log .= "$_<br>";
next;
}
chomp;
my ($project,$person) = split /\t/;
my $company = $companies{$person};
$company = "unknown" unless $company;
$data{$project}{$company}++;
}
}
sub report {
my @projects = keys %data;
foreach my $project ( @projects ) {
my @companies = keys %{$data{$project}};
foreach my $company ( @companies ) {
print "$company $project $year " . $data{$project}{$company} . "\n";
}
}
}