Merge from knu-cvsweb 1.103.1.29.

2000-10-01 03:48  knu

	* INSTALL, cvsweb.cgi: Specify -R (Read-only mode) and -l (Do not
	log in history) flags when doing a cvs annotation so that one does
	not need to turn on the write permission on CVSROOT/history for the
	user which httpd runs cvsweb.cgi as. (typically "nobody")

2000-10-01 03:27  knu

	* cvsweb.cgi: Fix the comment to make how to set $config clear.

	Inspired by:	"Dan Langille" <dan@langille.org>

2000-09-29 03:06  knu

	* cvsweb.cgi: Trap errors in the configuration files on loading and
	show error messages.  (Previously it failed silently)

	Submitted by:	Sean Scarff <sean@pavilion.net>
This commit is contained in:
Akinori MUSHA 2000-09-30 18:57:41 +00:00
parent f5f9d6b42d
commit a15211c2a5
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=8053

View file

@ -43,8 +43,8 @@
# SUCH DAMAGE.
#
# $zId: cvsweb.cgi,v 1.103 2000/09/20 17:02:29 jumager Exp $
# $Id: cvsweb.cgi,v 1.52 2000-09-23 20:37:58 knu Exp $
# $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.51 2000/09/19 20:20:06 knu Exp $
# $Id: cvsweb.cgi,v 1.53 2000-09-30 18:57:41 knu Exp $
# $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.52 2000/09/23 20:37:58 knu Exp $
#
###
@ -126,14 +126,13 @@ sub forbidden_module($);
use Cwd;
# == EDIT this ==
# User configuration is stored in
$config = undef;
for ($ENV{CVSWEB_CONFIG},
# '/home/knu/etc/cvsweb.conf',
# Locations to search for user configuration, in order:
for (
$ENV{CVSWEB_CONFIG},
'/usr/local/etc/cvsweb.conf',
getcwd . '/cvsweb.conf') {
$config = $_ if defined($_) && -r $_;
getcwd() . '/cvsweb.conf'
) {
$config = $_ if defined($_) && -r $_;
}
# == Configuration defaults ==
@ -147,7 +146,7 @@ $allow_version_select = 1;
# These are defined to allow checking with perl -cw
%CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES =
%tags = %alltags = @tabcolors = ();
$cvstreedefault = $body_tag = $body_tag_for_src =
$cvstreedefault = $body_tag = $body_tag_for_src =
$logo = $defaulttitle = $address =
$long_intro = $short_instruction = $shortLogLen =
$show_author = $dirtable = $tablepadding = $columnHeaderColorDefault =
@ -231,9 +230,11 @@ $maycompress = (((defined($ENV{HTTP_ACCEPT_ENCODING})
@stickyvars = qw(cvsroot hideattic sortby logsort f only_with_tag);
if (-f $config) {
do $config;
}
else {
do $config
|| &fatal("500 Internal Error",
sprintf('Error in loading configuration file: %s<BR><BR>%s<BR>',
$config, &htmlify($@)));
} else {
&fatal("500 Internal Error",
'Configuration not found. Set the variable <code>$config</code> '
. 'in cvsweb.cgi, or the environment variable '
@ -362,8 +363,15 @@ foreach my $k (keys %ICONS) {
}
}
my $config_cvstree = "$config-$cvstree";
# Do some special configuration for cvstrees
do "$config-$cvstree" if (-f "$config-$cvstree");
if (-f $config_cvstree) {
do $config_cvstree
|| &fatal("500 Internal Error",
sprintf('Error in loading configuration file: %s<BR><BR>%s<BR>',
$config_cvstree, &htmlify($@)));
}
$prcategories = '(?:' . join('|', @prcategories) . ')';
$prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/;
@ -1154,7 +1162,7 @@ sub doAnnotate($$) {
# the public domain.
# we could abandon the use of rlog, rcsdiff and co using
# the cvsserver in a similiar way one day (..after rewrite)
$pid = open2($reader, $writer, "cvs server") || fatal ("500 Internal Error",
$pid = open2($reader, $writer, "cvs -Rl server") || fatal ("500 Internal Error",
"Fatal Error - unable to open cvs for annotation");
# OK, first send the request to the server. A simplified example is:
@ -2477,7 +2485,7 @@ sub navigateHeader($$$$$) {
$swhere = urlencode($filename) if ($swhere eq "");
print "<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
print "<HTML>\n<HEAD>\n";
print '<!-- CVSweb $zRevision: 1.103 $ $Revision: 1.52 $ -->';
print '<!-- CVSweb $zRevision: 1.103 $ $Revision: 1.53 $ -->';
print "\n<TITLE>$path$filename - $title - $rev</TITLE></HEAD>\n";
print "$body_tag_for_src\n";
print "<table width=\"100%\" border=0 cellspacing=0 cellpadding=1 bgcolor=\"$navigationHeaderColor\">";
@ -2832,7 +2840,7 @@ sub http_header(;$) {
sub html_header($) {
my ($title) = @_;
my $version = '$zRevision: 1.103 $ $Revision: 1.52 $'; #'
my $version = '$zRevision: 1.103 $ $Revision: 1.53 $'; #'
http_header();
(my $header = &cgi_style::html_header) =~ s/^.*\n\n//; # remove HTTP response header