Commit 76bc08d9 authored by terry%netscape.com's avatar terry%netscape.com
Browse files

Added code to generate RDF, for a Netcenter channel.

parent c051f651
Loading
Loading
Loading
Loading
+76 −32
Original line number Diff line number Diff line
@@ -70,6 +70,12 @@ if ($form{'quickparse'}) {
    exit();
}

if ($form{'rdf'}) {
    print "Content-type: text/plain\n\n";
    &do_rdf;
    exit();
}


if ($nowdate eq $maxdate) {
  print "Content-type: text/html\nRefresh: 900\n\n<HTML>\n";
@@ -758,32 +764,16 @@ sub do_express {
}


sub do_quickparse {
    if ($tree eq '') {
        foreach my $t (make_tree_list()) {
            print "$t\n";
        }
        exit;
    }
    my @treelist = split(/,/, $tree);
    foreach my $t (@treelist) {
        $bonsai_tree = "";
        require "$t/treedata.pl";
        if ($bonsai_tree ne "") {
            my $state = tree_open() ? "Open" : "Close";
            print "State|$t|$bonsai_tree|$state\n";
        }
        my %build;
        my %times;
sub loadquickparseinfo {
    my ($t, $build, $times) = (@_);
    open(BUILDLOG, "<$t/build.dat" ) || die "Bad treename $t";
    while( <BUILDLOG> ){
        chop;
            ($mailtime, $buildtime, $buildname, $errorparser,
             $buildstatus, $logfile) = 
                 split( /\|/ );
        my ($mailtime, $buildtime, $buildname, $errorparser,
            $buildstatus, $logfile) = split( /\|/ );
        if( $buildstatus eq 'success' || $buildstatus eq 'busted'){
                $build{$buildname} = $buildstatus;
                $times{$buildname} = $buildtime;
            $build->{$buildname} = $buildstatus;
            $times->{$buildname} = $buildtime;
        }
    }
    close( BUILDLOG );
@@ -791,7 +781,7 @@ sub do_quickparse {
    if( -r "$t/ignorebuilds.pl" ){
        require "$t/ignorebuilds.pl";
        foreach my $z (keys(%$ignore_builds)) {
                delete $build{$z}; # We're supposed to ignore this
            delete $build->{$z}; # We're supposed to ignore this
                                # build entirely.
        }
    }
@@ -799,17 +789,71 @@ sub do_quickparse {
    
    my $maxtime = 0;
    for my $buildname (@keys) {
            if ($maxtime < $times{$buildname}) {
                $maxtime = $times{$buildname};
        if ($maxtime < $times->{$buildname}) {
            $maxtime = $times->{$buildname};
        }
    }

    for my $buildname (@keys ){
            if ($times{$buildname} < $maxtime - 12*60*60) {
        if ($times->{$buildname} < $maxtime - 12*60*60) {
            # This build is more than 12 hours old.  Ignore it.
                next;
            delete $times->{$buildname};
            delete $build->{$buildname};
        }
    }
}

sub do_quickparse {
    if ($tree eq '') {
        foreach my $t (make_tree_list()) {
            print "$t\n";
        }
        exit;
    }
    my @treelist = split(/,/, $tree);
    foreach my $t (@treelist) {
        $bonsai_tree = "";
        require "$t/treedata.pl";
        if ($bonsai_tree ne "") {
            my $state = tree_open() ? "Open" : "Close";
            print "State|$t|$bonsai_tree|$state\n";
        }
        my %build;
        my %times;
        loadquickparseinfo($t, \%build, \%times);

        for my $buildname (sort(keys %build) ){
            print "Build|$t|$buildname|$build{$buildname}\n";
        }
    }
}

sub do_rdf {
    my $mainurl = "http://$ENV{SERVER_NAME}$ENV{SCRIPT_NAME}?tree=$tree";
    print qq{
<?xml version="1.0"?>
<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<channel>
<title>Tinderbox - $tree</title>
<description>Build bustages for $tree</description>
<link>$mainurl</link>
</channel>
};
    $bonsai_tree = "";
    require "$tree/treedata.pl";
    if ($bonsai_tree ne "") {
        my $state = tree_open() ? "OPEN" : "CLOSED";
        print "<item><title>The tree is currently $state</title></item>\n";
    }
    my %build;
    my %times;
    loadquickparseinfo($tree, \%build, \%times);
    
    for my $buildname (sort(keys %build)) {
        if ($build{$buildname} eq 'busted') {
            print "<item><title>$buildname is in flames</title></item>\n";
        }
    }
    print "</rdf:RDF>\n";
}