version 4.29, 2019/11/29 13:39:50 |
version 4.35, 2019/11/29 18:15:48 |
Line 56 use filetest qw(access); |
|
Line 56 use filetest qw(access); |
|
use vars qw ( |
use vars qw ( |
$VERSION $CheckoutMagic $MimeTypes $DEBUG |
$VERSION $CheckoutMagic $MimeTypes $DEBUG |
$config $allow_version_select |
$config $allow_version_select |
@CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr |
@CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr %DEFAULTVALUE %MTYPES |
%DEFAULTVALUE %ICONS %MTYPES |
|
%DIFF_COMMANDS @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS |
%DIFF_COMMANDS @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS |
%alltags %fileinfo %tags @branchnames %nameprinted |
%alltags %fileinfo %tags @branchnames %nameprinted |
%symrev %revsym @allrevisions %date %author @revdisplayorder |
%symrev %revsym @allrevisions %date %author @revdisplayorder |
|
|
%input $query $barequery $sortby $bydate $byrev $byauthor |
%input $query $barequery $sortby $bydate $byrev $byauthor |
$bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot |
$bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot |
$charset $output_filter %CMD $allow_compress $backicon $diricon $fileicon |
$charset $output_filter %CMD $allow_compress $backicon $diricon $fileicon |
$fullname $logo $defaulttitle $address $binfileicon |
$fullname $logo $defaulttitle $address $binfileicon $iconsdir |
$long_intro $short_instruction $shortLogLen $show_author |
$shortLogLen $show_author $hr_breakable $hr_ignwhite $hr_ignkeysubst |
$tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst |
|
$inputTextSize $mime_types $allow_annotate $allow_markup $allow_mailtos |
$inputTextSize $mime_types $allow_annotate $allow_markup $allow_mailtos |
$allow_log_extra $allow_dir_extra $allow_source_extra |
$allow_log_extra $allow_dir_extra $allow_source_extra |
$edit_option_form |
$edit_option_form |
|
|
$tabstop $state $annTable $sel @ForbiddenFiles |
$tabstop $state $annTable $sel @ForbiddenFiles |
$use_descriptions %descriptions $dwhere |
$use_descriptions %descriptions $dwhere |
$use_moddate $gzip_open $file_list_len |
$use_moddate $gzip_open $file_list_len |
$allow_tar @tar_options @gzip_options @cvs_options |
$allow_tar @tar_options @cvs_options |
@annotate_options @rcsdiff_options |
@annotate_options @rcsdiff_options |
$HTML_DOCTYPE $HTML_META $cssurl $CSS |
$HTML_DOCTYPE $HTML_META $cssurl $CSS |
); |
); |
|
|
$MimeTypes = undef if $@; |
$MimeTypes = undef if $@; |
|
|
$CheckoutMagic = '~checkout~'; |
$CheckoutMagic = '~checkout~'; |
$CMD{$_} = "/usr/bin/$_" for (qw(cvs gzip rcsdiff rlog)); |
$CMD{$_} = "/usr/bin/$_" for (qw(cvs rcsdiff rlog)); |
$CMD{tar} = "/bin/tar"; |
$CMD{tar} = "/bin/tar"; |
} |
} |
|
|
Line 190 sub checkout_to_temp($$$); |
|
Line 188 sub checkout_to_temp($$$); |
|
# (think mod_perl)... |
# (think mod_perl)... |
delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}); |
delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}); |
|
|
|
# Helps to achieve read only access to the repositories |
|
# with cvs >= 1.12.1 and doesn't hurt other versions. |
|
$ENV{CVSREADONLYFS} = 1; |
|
|
# Location of the configuration file inside the web server chroot: |
# Location of the configuration file inside the web server chroot: |
$config = '/conf/cvsweb/cvsweb.conf'; |
$config = '/conf/cvsweb/cvsweb.conf'; |
|
|
######## Configuration parameters ######### |
######## Configuration parameters ######### |
|
|
@CVSrepositories = @CVSROOT = %CVSROOT = %DEFAULTVALUE = %ICONS = |
@CVSrepositories = @CVSROOT = %CVSROOT = %DEFAULTVALUE = |
%MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = (); |
%MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = (); |
|
|
$logo = $defaulttitle = |
$logo = $defaulttitle = |
$address = $long_intro = $short_instruction = $shortLogLen = $show_author = |
$address = $shortLogLen = $show_author = |
$tablepadding = $hr_breakable = $showfunc = $hr_ignwhite = |
$hr_breakable = $hr_ignwhite = |
$hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate = |
$hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate = |
$allow_markup = $allow_compress = $edit_option_form = |
$allow_markup = $allow_compress = $edit_option_form = |
$show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup = |
$show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup = |
Line 568 if ($input{cvsroot} && $CVSROOT{$input{cvsroot}}) { |
|
Line 570 if ($input{cvsroot} && $CVSROOT{$input{cvsroot}}) { |
|
|
|
$cvsroot = $CVSROOT{$cvstree}; |
$cvsroot = $CVSROOT{$cvstree}; |
|
|
# create icons out of description |
if ($iconsdir) { |
foreach my $k (keys %ICONS) { |
$backicon = '<img src="' . $iconsdir . '/back.gif" alt="[BACK]"' . |
my ($itxt, $ipath, $iwidth, $iheight) = @{$ICONS{$k}}; |
' border="0" width="20" height="22"/>'; |
no strict 'refs'; |
$diricon = '<img src="' . $iconsdir . '/dir.gif" alt="[DIR]"' . |
if ($ipath) { |
' border="0" width="20" height="22"/>'; |
${"${k}icon"} = |
$fileicon = '<img src="' . $iconsdir . '/text.gif" alt="[TXT]"' . |
sprintf('<img src="%s" alt="%s" border="0" width="%d" height="%d" />', |
' border="0" width="20" height="22"/>'; |
htmlquote($ipath), htmlquote($itxt), $iwidth, $iheight); |
$binfileicon = '<img src="' . $iconsdir . '/binary.gif" alt="[BIN]"' . |
} else { |
' border="0" width="20" height="22"/>'; |
${"${k}icon"} = $itxt; |
} else { |
} |
$backicon = 'back'; |
|
$diricon = 'dir'; |
|
$fileicon = 'file'; |
|
$binfileicon = 'binfile'; |
} |
} |
|
|
my $config_cvstree = "$config-$cvstree"; |
my $config_cvstree = "$config-$cvstree"; |
Line 678 if ($input{tarball}) { |
|
Line 683 if ($input{tarball}) { |
|
('500 Internal Error', |
('500 Internal Error', |
'Export failure (exit status %s), output: <pre>%s</pre>', |
'Export failure (exit status %s), output: <pre>%s</pre>', |
$errcode, $err || $export_err); |
$errcode, $err || $export_err); |
|
|
} else { |
} else { |
|
|
$| = 1; # Essential to get the buffering right. |
$| = 1; # Essential to get the buffering right. |
local (*TAR_OUT); |
local (*TAR_OUT); |
|
my ($h, $err) = startproc($CMD{tar}, @tar_options, '-czf', '-', |
my (@cmd, $ctype); |
$basedir, '>pipe', \*TAR_OUT); |
my @tar = ($CMD{tar}, @tar_options, '-cf', '-', $basedir); |
|
my @gzip = ($CMD{gzip}, @gzip_options, '-c'); |
|
push(@cmd, \@tar, '|', \@gzip); |
|
$ctype = 'application/x-gzip'; |
|
push(@cmd, '>pipe', \*TAR_OUT); |
|
|
|
my ($h, $err) = startproc(@cmd); |
|
if ($h) { |
if ($h) { |
print "Content-Type: $ctype\r\n\r\n"; |
print "Content-Type: application/x-gzip\r\n\r\n"; |
local $/ = undef; |
local $/ = undef; |
print <TAR_OUT>; |
print <TAR_OUT>; |
$h->finish(); |
$h->finish(); |
Line 727 if (-d $fullname) { |
|
Line 723 if (-d $fullname) { |
|
|
|
if ($where eq '/') { |
if ($where eq '/') { |
html_header($defaulttitle); |
html_header($defaulttitle); |
$long_intro =~ s/!!CVSROOTdescr!!/$CVSROOTdescr{$cvstree}/g; |
|
print $long_intro; |
|
} else { |
} else { |
html_header($where); |
html_header($where); |
my $html = (-f catfile($fullname, 'README.cvs.html,v') || |
my $html = (-f catfile($fullname, 'README.cvs.html,v') || |
Line 765 if (-d $fullname) { |
|
Line 759 if (-d $fullname) { |
|
} |
} |
$h->finish(); |
$h->finish(); |
} |
} |
print $short_instruction; |
|
} |
} |
|
|
if ($use_descriptions && |
if ($use_descriptions && |
Line 794 if (-d $fullname) { |
|
Line 787 if (-d $fullname) { |
|
|
|
my $infocols = 1; |
my $infocols = 1; |
|
|
printf(<<EOF, $tablepadding, 'Directory index of ' . htmlquote($where)); |
printf(<<EOF, 'Directory index of ' . htmlquote($where)); |
<table class="dir" width="100%%" cellspacing="0" cellpadding="%s" summary="%s"> |
<table class="dir" width="100%%" cellspacing="0" cellpadding="2" summary="%s"> |
<tr> |
<tr> |
EOF |
EOF |
printf('<th colspan="2"%s>', ($byfile ? ' class="sorted"' : '')); |
printf('<th colspan="2"%s>', ($byfile ? ' class="sorted"' : '')); |
Line 2133 sub doDiff($$$$$$) |
|
Line 2126 sub doDiff($$$$$$) |
|
my $human_readable = $difftype->{colored}; |
my $human_readable = $difftype->{colored}; |
|
|
# Apply special diff options. |
# Apply special diff options. |
push @difftype, '-p' if $showfunc; |
push @difftype, '-p'; |
|
|
if ($human_readable) { |
if ($human_readable) { |
push(@difftype, '-w') if $hr_ignwhite; |
push(@difftype, '-w') if $hr_ignwhite; |