mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-10 01:08:21 +00:00
moved from lib
This commit is contained in:
parent
dfbba819e6
commit
081306431a
216
webtools/tinderbox2/src/default_conf/BuildStatus.pm
Normal file
216
webtools/tinderbox2/src/default_conf/BuildStatus.pm
Normal file
@ -0,0 +1,216 @@
|
||||
|
||||
# $Revision: 1.1 $
|
||||
# $Date: 2000/11/29 20:53:13 $
|
||||
# $Author: kestes%staff.mail.com $
|
||||
# $Source: /home/hwine/cvs_conversion/cvsroot/mozilla/webtools/tinderbox2/src/default_conf/BuildStatus.pm,v $
|
||||
# $Name: $
|
||||
|
||||
|
||||
# The contents of this file are subject to the Mozilla Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is the Tinderbox build tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
|
||||
# complete rewrite by Ken Estes, Mail.com (kestes@staff.mail.com).
|
||||
# Contributor(s):
|
||||
|
||||
|
||||
package BuildStatus;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# for each Build status we have:
|
||||
|
||||
# color: to display it in on the buildpage
|
||||
# handler: to execute actions each time the status is reported.
|
||||
# description: to put in the legend
|
||||
# order: to show us the how well this build did compared with other builds,
|
||||
# bigger numbers means more progress
|
||||
|
||||
# The Tinderbox code should not depend on the set of status values in
|
||||
# case we need to add more types later.
|
||||
|
||||
# possible new types include: unit-test-failed,
|
||||
# perforance-test-failed, coverage-failed, lint-failed
|
||||
|
||||
# The Tinderbox code only hardcodes the values of: 'not_running',
|
||||
# 'building' to determine if the build in question has completed and
|
||||
# 'success' to dertermine if the build finished all that it was
|
||||
# intended to do. The various gradations of failure are not tracked
|
||||
# inside tinerbox but are useful for project managment.
|
||||
|
||||
|
||||
# If new types are added, try and keep to a small set of colors or the
|
||||
# display will get confusing. You may find it convienent to keep a
|
||||
# distinction between different kinds of warnings or different kinds
|
||||
# of tests but we suggest keeping all warnings and all tests get the
|
||||
# same color.
|
||||
|
||||
# Each time a build update is sent to the tinderbox server, a handler
|
||||
# function is run. This allows the local administrator to specify an
|
||||
# arbitrary action to take each time a particular status is reported.
|
||||
|
||||
# This handler could be used to open a trouble ticket each time the
|
||||
# build fails. There could be a new web page where developers could
|
||||
# request notification (email, page) when the next build is done.
|
||||
# This would allow developers to not watch the tinderbox webpage so
|
||||
# intently but be informed when an interesting change has occured.
|
||||
|
||||
# Please send us interesting uses for the handler. We would like to
|
||||
# make examples availible.
|
||||
|
||||
%STATUS = (
|
||||
|
||||
'not_running'=> {
|
||||
|
||||
# You may want this to be 'aqua' if you
|
||||
# need to distinguish from 'building'
|
||||
|
||||
'html_color'=> 'yellow',
|
||||
'hdml_char'=> '.',
|
||||
'handler'=> \&main::null,
|
||||
'description'=> 'Build is not running',
|
||||
'order'=> 0,
|
||||
},
|
||||
|
||||
'building' => {
|
||||
'html_color'=> 'yellow',
|
||||
'hdml_char'=> '.',
|
||||
'handler'=> \&main::null,
|
||||
'description'=> 'Build in progress',
|
||||
'order'=> 1,
|
||||
},
|
||||
|
||||
'build_failed' => {
|
||||
'html_color' => 'red',
|
||||
'hdml_char'=> '!',
|
||||
'handler' => \&main::null,
|
||||
'description' => 'Build failed',
|
||||
'order' => 2
|
||||
},
|
||||
|
||||
'test_failed' => {
|
||||
'html_color' => 'orange',
|
||||
'hdml_char'=> '~',
|
||||
'handler' => \&main::null,
|
||||
'description' => 'Build succeded but tests failed',
|
||||
'order' => 3,
|
||||
},
|
||||
|
||||
'success' => {
|
||||
'html_color' => 'lime',
|
||||
'hdml_char'=> '+',
|
||||
'handler' => \&main::null,
|
||||
'description'=> 'Build and all tests were successful',
|
||||
'order' => 4,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
sub run_status_handler {
|
||||
my ($record) = @_;
|
||||
|
||||
my ($buildstatus) = $record->{'status'};
|
||||
|
||||
# run status dependent hook.
|
||||
&{$BuildStatus::STATUS{$buildstatus}{'handler'}}($record);
|
||||
|
||||
# notice handlers never return any values.
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
sub is_status_valid {
|
||||
my ($status) = @_;
|
||||
|
||||
if ( defined ($STATUS{$status}) ) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
sub get_all_status {
|
||||
my (@status) = keys %STATUS;
|
||||
|
||||
return @status;
|
||||
}
|
||||
|
||||
|
||||
# return the states in an order sorted by $STATUS{*}{'order'}
|
||||
|
||||
sub get_all_sorted_status {
|
||||
my @sorted_status = (
|
||||
map { $_->[0] }
|
||||
sort{ $a->[1] <=> $b->[1] }
|
||||
map { [ $_, $STATUS{$_}{'order'} ] }
|
||||
(keys %STATUS )
|
||||
);
|
||||
|
||||
return @sorted_status;
|
||||
}
|
||||
|
||||
|
||||
# convert a list of status strings into a list of html_colors
|
||||
|
||||
sub status2html_colors {
|
||||
my (@latest_status) = @_;
|
||||
my @out;
|
||||
|
||||
for ($i=0; $i <= $#latest_status; $i++) {
|
||||
my ($status) = $latest_status[$i];
|
||||
my ($out) = $STATUS{$status}{'html_color'};
|
||||
push @out, $out;
|
||||
}
|
||||
|
||||
return @out;
|
||||
}
|
||||
|
||||
|
||||
# convert a list of status strings into a list of hdml_chars
|
||||
|
||||
sub status2hdml_chars {
|
||||
my (@latest_status) = @_;
|
||||
my @out;
|
||||
|
||||
for ($i=0; $i <= $#latest_status; $i++) {
|
||||
my ($status) = $latest_status[$i];
|
||||
my ($out) = $STATUS{$status}{'hdml_char'};
|
||||
push @out, $out;
|
||||
}
|
||||
|
||||
return @out;
|
||||
}
|
||||
|
||||
# convert a list of status strings into a list of hdml_chars
|
||||
|
||||
sub status2descriptions {
|
||||
my (@latest_status) = @_;
|
||||
my @out;
|
||||
|
||||
for ($i=0; $i <= $#latest_status; $i++) {
|
||||
my ($status) = $latest_status[$i];
|
||||
my ($out) = $STATUS{$status}{'description'};
|
||||
push @out, $out;
|
||||
}
|
||||
|
||||
return @out;
|
||||
}
|
||||
|
336
webtools/tinderbox2/src/default_conf/Error_Parse.pm
Normal file
336
webtools/tinderbox2/src/default_conf/Error_Parse.pm
Normal file
@ -0,0 +1,336 @@
|
||||
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
||||
|
||||
# Error_Parser.pm - parsing functions for build errors reported by
|
||||
# various tools/OS's. Used by processmail to turn the build logs into
|
||||
# HTML.
|
||||
|
||||
# $Revision: 1.1 $
|
||||
# $Date: 2000/11/29 20:53:19 $
|
||||
# $Author: kestes%staff.mail.com $
|
||||
# $Source: /home/hwine/cvs_conversion/cvsroot/mozilla/webtools/tinderbox2/src/default_conf/Error_Parse.pm,v $
|
||||
# $Name: $
|
||||
|
||||
|
||||
# The contents of this file are subject to the Mozilla Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is the Tinderbox build tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
|
||||
# complete rewrite by Ken Estes, Mail.com (kestes@staff.mail.com).
|
||||
# Contributor(s):
|
||||
|
||||
|
||||
|
||||
|
||||
package Error_Parse;
|
||||
|
||||
$VERSION = '#tinder_version#';
|
||||
|
||||
# the rest of the code does not depend on knowing the different
|
||||
# line_types. We may need to add new types like:
|
||||
# 'warning_style', 'warning_fix_required',
|
||||
# 'error_test', 'error_test_performance'
|
||||
|
||||
# These new types would be useful for the "build warnings page" since
|
||||
# not every warning may be considered interesting by QA. Allowing a
|
||||
# flexible error type will allow QA to define types of warnigns of
|
||||
# interest and other warnings may only be interesting during
|
||||
# particular types of builds.
|
||||
|
||||
# If new types are added try and keep to a small set of colors or the
|
||||
# display will get confusing. You may find it convienent to keep a
|
||||
# distinction between different kinds of warnings or different kinds
|
||||
# of tests but all warnings and all tests get the same color.
|
||||
|
||||
|
||||
# Be careful when changing the function line_type. An improperly
|
||||
# tuned version can take up 50% (as shown by perl -d:DProf ) of the
|
||||
# execution time.
|
||||
|
||||
%LINE_TYPE2COLOR = (
|
||||
'error' => "navy",
|
||||
'warning' => "maroon",
|
||||
'info' => "black",
|
||||
);
|
||||
|
||||
# This block adjusts how we format the error logs, perhaps it belongs
|
||||
# in another file and not the error_parse file. Processmail is a
|
||||
# candidate.
|
||||
|
||||
{
|
||||
|
||||
# window of context arround error message, for summary log
|
||||
# created by Error_Parse.pm and processmail
|
||||
|
||||
$LINES_AFTER_ERROR = 5;
|
||||
|
||||
$LINES_BEFORE_ERROR = 30;
|
||||
|
||||
# number of characters width the line number gets in HTML pages
|
||||
# (mostly the build log pages)
|
||||
|
||||
$LINENO_COLUMN = 6;
|
||||
|
||||
}
|
||||
|
||||
|
||||
package Error_Parse::unix;
|
||||
|
||||
|
||||
sub line_type {
|
||||
my ($line) = @_;
|
||||
|
||||
$error = (
|
||||
|
||||
($line =~ /\b[Ee]rror\b/) || # C make error
|
||||
($line =~ /\b[Ff]atal\b/) || # link error
|
||||
($line =~ /\b[Aa]ssertion\b/) || # test error
|
||||
($line =~ /\b[Aa]borted\b/) || # cvs error
|
||||
($line =~ /\b[Ff]ailed\b/) || # java nmake
|
||||
|
||||
($line =~ /Unknown host /) || # cvs error
|
||||
($line =~ /\: cannot find module/) || # cvs error
|
||||
($line =~ /\^C /) || # cvs merge conflict
|
||||
($line =~ /Couldn\'t find project file /) || # CW project error
|
||||
($line =~ /Creating new precompiled header/) || # Wastes time.
|
||||
($line =~ /No such file or directory/) || # cpp error
|
||||
($line =~ /jmake.MakerFailedException:/) || # Java error
|
||||
0);
|
||||
|
||||
if ($error) {
|
||||
return('error');
|
||||
}
|
||||
|
||||
$warning = (
|
||||
|
||||
($line =~ m/^[-._\/A-Za-z0-9]+\.[A-Za-z0-9]+\:[0-9]+\:/) ||
|
||||
($line =~ m/^\"[-._\/A-Za-z0-9]+\.[A-Za-z0-9]+\"\, line [0-9]+\:/) ||
|
||||
|
||||
($line =~ m/\b[Ww]arning\b/) ||
|
||||
($line =~ m/not implemented:/) ||
|
||||
|
||||
0);
|
||||
|
||||
if ($warning) {
|
||||
return('warning');
|
||||
}
|
||||
|
||||
return('info');
|
||||
}
|
||||
|
||||
|
||||
sub parse_errorline {
|
||||
local( $line ) = @_;
|
||||
|
||||
if( $line =~ /^(([A-Za-z0-9_]+\.[A-Za-z0-9]+)\:([0-9]+)\:)/ ){
|
||||
my ($error_msg) = $1;
|
||||
my ($error_file_ref) = $2;
|
||||
my ($error_line) = $3;
|
||||
return ($error_file_ref, $error_line);
|
||||
}
|
||||
if ( $line =~ /^(\"([A-Za-z0-9_]+\.[A-Za-z0-9]+)\"\, line ([0-9]+)\:)/ ){
|
||||
my ($error_msg) = $1;
|
||||
my ($error_file_ref) = $2;
|
||||
my ($error_line) = $3;
|
||||
return ($error_file_ref, $error_line);
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
package Error_Parse::windows;
|
||||
|
||||
sub line_type {
|
||||
my ($line) = @_;
|
||||
|
||||
$error = (
|
||||
|
||||
($line =~ /\b[Ee]rror\b/) || # C make error
|
||||
($line =~ /\b[Ff]atal\b/) || # link error
|
||||
($line =~ /\b[Aa]ssertion\b/) || # test error
|
||||
($line =~ /\b[Aa]borted\b/) || # cvs error
|
||||
($line =~ /\b[Ff]ailed\b/) || # java nmake
|
||||
|
||||
($line =~ /Unknown host /) || # cvs error
|
||||
($line =~ /\: cannot find module/) || # cvs error
|
||||
($line =~ /\^C /) || # cvs merge conflict
|
||||
($line =~ /Couldn\'t find project file /) || # CW project error
|
||||
($line =~ /Creating new precompiled header/) || # Wastes time.
|
||||
($line =~ /No such file or directory/) || # cpp error
|
||||
|
||||
0);
|
||||
|
||||
if ($error) {
|
||||
return('error');
|
||||
}
|
||||
|
||||
$warning = (
|
||||
($line =~ m/^[-._\/A-Za-z0-9]+\.[A-Za-z0-9]+\:[0-9]+\:/) ||
|
||||
($line =~ m/^\"[-._\/A-Za-z0-9]+\.[A-Za-z0-9]+\"\, line [0-9]+\:/) ||
|
||||
($line =~ m/\bwarning\b/) ||
|
||||
($line =~ m/not implemented:/) ||
|
||||
0);
|
||||
|
||||
if ($warning) {
|
||||
return('warning');
|
||||
}
|
||||
|
||||
return('info');
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub parse_errorline {
|
||||
local( $line ) = @_;
|
||||
|
||||
if( $line =~ m@(ns([\\/][a-z0-9\._]+)*)@i ){
|
||||
my $error_file = $1;
|
||||
my $error_file_ref = lc $error_file;
|
||||
$error_file_ref =~ s@\\@/@g;
|
||||
|
||||
$line =~ m/\(([0-9]+)\)/;
|
||||
my $error_line = $1;
|
||||
return ($error_file_ref, $error_line);
|
||||
}
|
||||
|
||||
if( $line =~ m@(^([A-Za-z0-9_]+\.[A-Za-z])+\(([0-9]+)\))@ ){
|
||||
my $error_file = $1;
|
||||
my $error_file_ref = lc $2;
|
||||
my $error_line = $3;
|
||||
$error_file_ref =~ s@\\@/@g;
|
||||
return ($error_file_ref, $error_line);
|
||||
}
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
package Error_Parse::mac;
|
||||
|
||||
|
||||
|
||||
sub line_type {
|
||||
my ($line) = @_;
|
||||
|
||||
$error = (
|
||||
($line =~ /\b[Ee]rror\b/) || # C make error
|
||||
($line =~ /\b[Ff]atal\b/) || # link error
|
||||
($line =~ /\b[Aa]ssertion\b/) || # test error
|
||||
($line =~ /\b[Aa]borted\b/) || # cvs error
|
||||
($line =~ /\b[Ff]ailed\b/) || # java nmake
|
||||
|
||||
($line =~ /Unknown host /) || # cvs error
|
||||
($line =~ /\: cannot find module/) || # cvs error
|
||||
($line =~ /\^C /) || # cvs merge conflict
|
||||
($line =~ /\bCouldn\'t find project file /) || # CW project
|
||||
($line =~ /\bCan\'t (create)|(open)|(find) /) || # CW project error
|
||||
0);
|
||||
|
||||
($error) &&
|
||||
return('error');
|
||||
|
||||
$warning = (
|
||||
($line =~ m/^[-._\/A-Za-z0-9]+\.[A-Za-z0-9]+\:[0-9]+\:/) ||
|
||||
($line =~ m/^\"[-._\/A-Za-z0-9]+\.[A-Za-z0-9]+\"\, line [0-9]+\:/) ||
|
||||
($line =~ m/warning/i) ||
|
||||
($line =~ m/not implemented:/i) ||
|
||||
0);
|
||||
|
||||
($warning) &&
|
||||
return('warning');
|
||||
|
||||
return('info');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sub parse_errorline {
|
||||
local( $line ) = @_;
|
||||
|
||||
if( $line =~ /^(([A-Za-z0-9_]+\.[A-Za-z0-9]+) line ([0-9]+))/ ){
|
||||
my $error_file = $1;
|
||||
my $error_file_ref = $2;
|
||||
my $error_line = $3;
|
||||
return ($error_file_ref, $error_line);
|
||||
}
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Error_Parser - methods used by showlogs.cgi
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
C<require Error_Parse::unix;>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The methods provided by this package are designed to be used in
|
||||
conjunction with showlogs.cgi. This file contains code for parsing
|
||||
out the error messages of various build tools. There are different
|
||||
name spaces for each build type and a set of parsing programs in each
|
||||
namespace. Currently build types are the major OS (Unix, Mac,
|
||||
Windows). It may be possible in the future to have a single universal
|
||||
parsing program or alternatly to have build types specify a list of
|
||||
parsing programs for each tool (compler, make language, script) which
|
||||
is used in the build process then a build would also need to specify a
|
||||
list of tools that are used. This may be necessary as people run unix
|
||||
compilers on NT and vice versa.
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=over 2
|
||||
|
||||
=item line_type
|
||||
|
||||
returns a string discribing if the line has any errors or warnings.
|
||||
The list of types may grow in the future as some warnings become more
|
||||
important then others. The possible return codes are:
|
||||
|
||||
'error'
|
||||
'warning'
|
||||
'info'
|
||||
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
=item has_errorline
|
||||
|
||||
returns undef if the input line does not contains a parsable error.
|
||||
|
||||
If the line contains a parsable error it returns the list
|
||||
|
||||
($error_file_ref, $error_line);
|
||||
|
||||
where:
|
||||
|
||||
|
||||
$error_file_ref: the file which has the error
|
||||
|
||||
$error_line: the line the error was found on
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Ken Estes (kestes@staff.mail.com)
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
|
202
webtools/tinderbox2/src/default_conf/FileStructure.pm
Normal file
202
webtools/tinderbox2/src/default_conf/FileStructure.pm
Normal file
@ -0,0 +1,202 @@
|
||||
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
||||
|
||||
# FileStructure.pm - The lookup for where different file/directories,
|
||||
# for each tree, are stored on the filesystem. Local system
|
||||
# administrator may need to put different trees onto different disk
|
||||
# partitions and this will require making get_filename() less regular
|
||||
# then we have defined it here.
|
||||
|
||||
# $Revision: 1.1 $
|
||||
# $Date: 2000/11/29 20:53:25 $
|
||||
# $Author: kestes%staff.mail.com $
|
||||
# $Source: /home/hwine/cvs_conversion/cvsroot/mozilla/webtools/tinderbox2/src/default_conf/FileStructure.pm,v $
|
||||
# $Name: $
|
||||
|
||||
|
||||
# The contents of this file are subject to the Mozilla Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is the Tinderbox build tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
|
||||
# complete rewrite by Ken Estes, Mail.com (kestes@staff.mail.com).
|
||||
# Contributor(s):
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
package FileStructure;
|
||||
|
||||
$VERSION = '#tinder_version#';
|
||||
|
||||
|
||||
|
||||
# I wish to do away with images. They do not add much to the display
|
||||
# and they make a bunch of clutter.
|
||||
|
||||
%IMAGES = (
|
||||
'flames' => '1afi003r.gif',
|
||||
'star' => 'star.gif',
|
||||
);
|
||||
|
||||
|
||||
|
||||
# the url to the tinderbox server binary directory
|
||||
|
||||
$URL_BIN = ($TinderConfig::URL_BIN ||
|
||||
"http://tinderbox.mozilla.org/cgibin");
|
||||
|
||||
|
||||
# the url to the tinderbox server HTML directory
|
||||
|
||||
$URL_HTML = ($TinderConfig::URL_HTML ||
|
||||
"http://tinderbox.mozilla.org/");
|
||||
|
||||
|
||||
%URLS = (
|
||||
|
||||
# url to main tinderbox executable
|
||||
|
||||
'tinderd' => "$URL_BIN/tinder.cgi",
|
||||
|
||||
# url to show notices for users who can not view popup windows.
|
||||
|
||||
'shownote' => "$URL_BIN/shownote.cgi",
|
||||
|
||||
'admintree' => "$URL_BIN/admintree.cgi",
|
||||
|
||||
'addnote' => "$URL_BIN/addnote.cgi",
|
||||
|
||||
'gunzip' => "$URL_BIN/gunzip.cgi",
|
||||
|
||||
'treepages' => "$URL_HTML",
|
||||
|
||||
);
|
||||
|
||||
# the full path name tinderbox will use to access the tinderbox
|
||||
# servers root data directory
|
||||
|
||||
$TINDERBOX_HTML_DIR = ($TinderConfig::TINDERBOX_HTML_DIR ||
|
||||
"/usr/apache/cgibin/webtools/tinderbox");
|
||||
|
||||
$TINDERBOX_DATA_DIR = ($TinderConfig::TINDERBOX_DATA_DIR ||
|
||||
"/usr/apache/cgibin/webtools/tinderbox");
|
||||
|
||||
$GLOBAL_INDEX_FILE = ($TinderConfig::GLOBAL_INDEX_FILE ||
|
||||
"index.html");
|
||||
|
||||
$LOCK_FILE = ($TinderConfig::LOCK_FILE ||
|
||||
"/usr/apache/cgibin/webtools/tinderbox/tinderd.lock");
|
||||
|
||||
# the default page for a tree
|
||||
$DEFAULT_HTML_PAGE = $TinderConfig::DEFAULT_HTML_PAGE || 'index.html';
|
||||
|
||||
# The lookup for where different file/directories are stored on the
|
||||
# filesystem. Local system administrator may need to put different
|
||||
# trees onto different disk partitions and this will require making
|
||||
# get_filename() less regular then we have defined it here.
|
||||
|
||||
sub get_filename {
|
||||
my ($tree, $file,) = @_;
|
||||
|
||||
(TreeData::tree_exists($tree)) ||
|
||||
die("tree: $tree does not exist\n");
|
||||
|
||||
my ($html_tree_dir) = "$TINDERBOX_HTML_DIR/$tree";
|
||||
my ($data_tree_dir) = "$TINDERBOX_DATA_DIR/$tree";
|
||||
|
||||
# all the file names this program uses appear below
|
||||
|
||||
my %all_files =
|
||||
(
|
||||
|
||||
# where the database files are stored on disk. For debugging it
|
||||
# is useful to have this inside the webservers document root so
|
||||
# that all browsers can examine the raw data. For security you
|
||||
# may want this outside the webservers document root, so that the
|
||||
# raw data can not be seen.
|
||||
|
||||
'TinderDB_Dir'=> "$data_tree_dir/db",
|
||||
|
||||
# header data files are placed in this directory. Same issues
|
||||
# with document root as above.
|
||||
|
||||
'TinderHeader_Dir'=> "$data_tree_dir/h",
|
||||
|
||||
# setting it like this lets you have each tree have a different
|
||||
# set of administrators.
|
||||
|
||||
'passwd' => "$data_tree_dir/h/passwd.DBdat",
|
||||
|
||||
# setting it like this lets you have one set of adminstrators for
|
||||
# all trees.
|
||||
|
||||
#'passwd' => "$TINDERBOX_DATA_DIR/passwd.DBdat",
|
||||
|
||||
# The build log files will be turned into html and stored
|
||||
# here. Lets have just one big full/brief directory for
|
||||
# all the trees this will make cleanup easier and no one
|
||||
# goes browsing through the tree specific log dir anyway.
|
||||
|
||||
'full-log' => "$TINDERBOX_HTML_DIR/full",
|
||||
|
||||
'brief-log' => "$TINDERBOX_HTML_DIR/brief",
|
||||
|
||||
# where the binary files mailed inside the build log files will
|
||||
# be placed.
|
||||
|
||||
'build_bin_dir' => "$html_tree_dir/bin",
|
||||
|
||||
# the per tree time stamp file to ensure all updates are at least
|
||||
# $TinderDB::TABLE_SPACING apart
|
||||
|
||||
'update_time_stamp' => "$data_tree_dir/db/Mail.Build.time.stamp",
|
||||
|
||||
# where the tree specific generated html pages are placed
|
||||
# in this directory
|
||||
|
||||
'tree_HTML' => $html_tree_dir,
|
||||
|
||||
'tree_URL' => "$URL_HTML/$tree",
|
||||
|
||||
# the index file to all summary pages and the status page for
|
||||
# this tree.
|
||||
|
||||
'index'=> "$html_tree_dir/index.html",
|
||||
|
||||
# there are automated bots who need the header data, they extract
|
||||
# it from this file.
|
||||
|
||||
'alltree_headers' => "$html_tree_dir/alltree_headers.html",
|
||||
|
||||
);
|
||||
|
||||
my $out = $all_files{$file};
|
||||
|
||||
($out) ||
|
||||
die("error in function FileStructure::all_files: ".
|
||||
"file: $file does not exist\n");
|
||||
|
||||
# Restrict the characters allowed in a file name to a known safe
|
||||
# set.
|
||||
|
||||
$out = main::extract_filename_chars($out);
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
1;
|
219
webtools/tinderbox2/src/default_conf/TinderConfig.pm
Normal file
219
webtools/tinderbox2/src/default_conf/TinderConfig.pm
Normal file
@ -0,0 +1,219 @@
|
||||
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
||||
|
||||
# TinderConfig -
|
||||
|
||||
|
||||
|
||||
# $Revision: 1.1 $
|
||||
# $Date: 2000/11/29 20:53:56 $
|
||||
# $Author: kestes%staff.mail.com $
|
||||
# $Source: /home/hwine/cvs_conversion/cvsroot/mozilla/webtools/tinderbox2/src/default_conf/TinderConfig.pm,v $
|
||||
# $Name: $
|
||||
|
||||
|
||||
# The contents of this file are subject to the Mozilla Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is the Tinderbox build tool.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
|
||||
# complete rewrite by Ken Estes, Mail.com (kestes@staff.mail.com).
|
||||
# Contributor(s):
|
||||
|
||||
|
||||
|
||||
|
||||
package TinderConfig;
|
||||
|
||||
|
||||
# The url to the tinderbox server binary directory
|
||||
|
||||
$URL_BIN = "http://tinderbox.mozilla.org/cgibin";
|
||||
|
||||
|
||||
# The url to the tinderbox server HTML directory
|
||||
|
||||
$URL_HTML = "http://tinderbox.mozilla.org/";
|
||||
|
||||
# The full path name tinderbox will use to access the tinderbox
|
||||
# servers root data directory where the html will be written.
|
||||
|
||||
$TINDERBOX_HTML_DIR = "/usr/apache/cgibin/webtools/tinderbox";
|
||||
|
||||
# The full path name tinderbox will use to access the tinderbox
|
||||
# servers root data directory where the data will be written. For
|
||||
# debugging you may wish to make this the same as the
|
||||
# $TINDERBOX_HTML_DIR and set Persistence::Dumper. This setting will
|
||||
# allow a browser can look at the internal data structures. For
|
||||
# production use it is more secure to keep internal tinderbox data
|
||||
# outside of the HTML tree so that the webserver can not send the
|
||||
# internal data over the network.
|
||||
|
||||
$TINDERBOX_DATA_DIR = "/usr/apache/cgibin/webtools/tinderbox";
|
||||
|
||||
# The top level tinderbox index file. Change this if you wish to
|
||||
# provide your own index file for tinderboxs web pages.
|
||||
|
||||
$GLOBAL_INDEX_FILE = "index.html";
|
||||
|
||||
# Error log filename:
|
||||
|
||||
$ERROR_LOG = "/var/log/tinderbox/log";
|
||||
|
||||
# Where the daemon mode lock (for all trees) is placed
|
||||
$LOCK_FILE = $TINDERBOX_HTML_DIR."/tinderd.lock";
|
||||
|
||||
# The time between auto refreshes for all pages in seconds.
|
||||
|
||||
$REFRESH_TIME = (60 * 15);
|
||||
|
||||
|
||||
# Pick how you wish to the Tinderbox popup windows to be implemented:
|
||||
# Uncomment only one HTMLPopUp implementation.
|
||||
|
||||
# MajorCoolWindow: Should be portable to all browsers
|
||||
# MozillaLayers: Will not display on any browser other then Netscape
|
||||
# None: A null implementation which will not use any popups
|
||||
# provide no popup windows. Use this if you do not run
|
||||
# JavaScript in your browsers.
|
||||
|
||||
$PopUpImpl = (
|
||||
# 'HTMLPopUp::MozillaLayers',
|
||||
'HTMLPopUp::MajorCoolWindow',
|
||||
# 'HTMLPopUp::None',
|
||||
);
|
||||
|
||||
|
||||
# Use the DB implementations you wish to use.
|
||||
|
||||
# These uses determine the columns of the build page and their
|
||||
# include order is the order in which the columns are displayed.
|
||||
|
||||
# The main choice of implementations is how to gather information
|
||||
# about checkins. You can currently choose whether you are using
|
||||
# bonsai or are using CVS raw.
|
||||
|
||||
@DBImpl = (
|
||||
'TinderDB::Time',
|
||||
'TinderDB::VC_CVS',
|
||||
'TinderDB::Notice',
|
||||
'TinderDB::BT_Generic',
|
||||
'TinderDB::Build',
|
||||
);
|
||||
|
||||
# What border should the status legends use? new browers allow us to
|
||||
# frame the parts of the legend without putting a border arround the
|
||||
# individual cells.
|
||||
|
||||
#$DB_LEGEND_BORDER = "border rules=none";
|
||||
$DB_LEGEND_BORDER = "";
|
||||
|
||||
# Spacing on html page (in minutes), this resticts the
|
||||
# minimum time between builds (to this value plus 5 minutes).
|
||||
|
||||
$DB_TABLE_SPACING = 5;
|
||||
|
||||
# Number of times a database can be updated before its contents must
|
||||
# be trimmed of old data. This scan of the database is used to
|
||||
# collect data about average build time so we do not want it
|
||||
# performed too infrequently.
|
||||
|
||||
$DB_MAX_UPDATES_SINCE_TRIM = 50;
|
||||
|
||||
# Number of seconds to keep in Database, older data will be trimmed
|
||||
# away.
|
||||
|
||||
$DB_TRIM_SECONDS = (60 * 60 * 24 * 8);
|
||||
|
||||
@HeaderImpl = (
|
||||
'TinderHeader::Build',
|
||||
'TinderHeader::IgnoreBuilds',
|
||||
'TinderHeader::MOTD',
|
||||
|
||||
# TinderDB::VC_Bonsai provides a
|
||||
# TinderHeader::TreeState implementation,
|
||||
# so comment out the TreeSTate if using
|
||||
# VC_Bonsai. Most VC implementations will
|
||||
# not have a State file in the version
|
||||
# control system.
|
||||
|
||||
'TinderHeader::TreeState',
|
||||
);
|
||||
|
||||
# Each of the TinderHeader method appears on the left side of this
|
||||
# hash and gets a default value. You must have a default value for
|
||||
# every header even if you do not use an implementation for it.
|
||||
|
||||
%HEADER2DEFAULT_HTML = (
|
||||
# the build module has one piece of info
|
||||
# which goes in the header, our best guess
|
||||
# as to when the tree broke.
|
||||
|
||||
'Build' => "",
|
||||
'IgnoreBuilds' => "",
|
||||
'MOTD' => "",
|
||||
'TreeState' => "Open",
|
||||
|
||||
);
|
||||
|
||||
|
||||
|
||||
# Pick one display system if your VC system can display via a web
|
||||
# server then VCDisplay module that you wish to use, otherwise pick
|
||||
# 'None'.
|
||||
|
||||
$VCDisplayImpl = (
|
||||
'VCDisplay::None',
|
||||
#'VCDisplay::Bonsai',
|
||||
);
|
||||
|
||||
|
||||
# Pick one method for storting data, Data::Dumper is slow but text
|
||||
# files allows great debugging capabilities and Storable, availible
|
||||
# from CPAN, which is a much faster binary format.
|
||||
|
||||
$PersistenceImpl = (
|
||||
'Persistence::Dumper',
|
||||
# 'Persistence::Storable',
|
||||
);
|
||||
|
||||
|
||||
# If you your using VCDisplay:Bonsai we need to know how to make HMTL
|
||||
# to point to the bonsai CGI programs.
|
||||
|
||||
$BONSAI_URL = "http://tinderbox.mozilla.org/bonsai";
|
||||
|
||||
# The default number of hours shown on the status page
|
||||
|
||||
$DEFAULT_DISPLAY_HOURS = 6;
|
||||
|
||||
# The default page for a tree, used in several types of href links to
|
||||
# 'return to the tree'.
|
||||
|
||||
#$DEFAULT_HTML_PAGE = 'index.html';
|
||||
$DEFAULT_HTML_PAGE = 'status.html';
|
||||
|
||||
# The amount of time rmlogs keeps logs on file
|
||||
|
||||
$BRIEF_LOG_TRIM_DAYS = 1;
|
||||
$FULL_LOG_TRIM_DAYS = 7;
|
||||
|
||||
# Should we write performance data to the log file?
|
||||
# zero means no, one means yes.
|
||||
|
||||
$LOG_PERFORMANCE = 0;
|
||||
|
||||
|
||||
1;
|
Loading…
x
Reference in New Issue
Block a user