version 4.26, 2019/11/26 12:04:55 |
version 4.29, 2019/11/29 13:39:50 |
|
|
$VERSION $CheckoutMagic $MimeTypes $DEBUG |
$VERSION $CheckoutMagic $MimeTypes $DEBUG |
$config $allow_version_select |
$config $allow_version_select |
@CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr |
@CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr |
%MIRRORS %DEFAULTVALUE %ICONS %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 |
|
|
$is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased |
$is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased |
%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 |
$charset $output_filter %CMD $allow_compress $backicon $diricon $fileicon |
@command_path %CMD $allow_compress $backicon $diricon $fileicon |
|
$fullname $logo $defaulttitle $address $binfileicon |
$fullname $logo $defaulttitle $address $binfileicon |
$long_intro $short_instruction $shortLogLen $show_author |
$long_intro $short_instruction $shortLogLen $show_author |
$tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst |
$tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst |
|
|
$MimeTypes = undef if $@; |
$MimeTypes = undef if $@; |
|
|
$CheckoutMagic = '~checkout~'; |
$CheckoutMagic = '~checkout~'; |
|
$CMD{$_} = "/usr/bin/$_" for (qw(cvs gzip rcsdiff rlog)); |
|
$CMD{tar} = "/bin/tar"; |
} |
} |
|
|
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
Line 167 sub plural_write($$); |
|
Line 168 sub plural_write($$); |
|
sub readableTime($$); |
sub readableTime($$); |
sub clickablePath($$); |
sub clickablePath($$); |
sub chooseCVSRoot(); |
sub chooseCVSRoot(); |
sub chooseMirror(); |
|
sub fileSortCmp(); |
sub fileSortCmp(); |
sub download_url($$;$); |
sub download_url($$;$); |
sub download_link($$$;$); |
sub download_link($$$;$); |
Line 195 $config = '/conf/cvsweb/cvsweb.conf'; |
|
Line 195 $config = '/conf/cvsweb/cvsweb.conf'; |
|
|
|
######## Configuration parameters ######### |
######## Configuration parameters ######### |
|
|
@CVSrepositories = @CVSROOT = %CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = |
@CVSrepositories = @CVSROOT = %CVSROOT = %DEFAULTVALUE = %ICONS = |
%MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = (); |
%MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = (); |
|
|
$logo = $defaulttitle = |
$logo = $defaulttitle = |
Line 645 if ($input{tarball}) { |
|
Line 645 if ($input{tarball}) { |
|
'You cannot download the top level directory.'); |
'You cannot download the top level directory.'); |
} |
} |
|
|
my $istar = $ext eq '.tar.gz' || $ext eq '.tgz'; |
unless ($ext eq '.tar.gz' || $ext eq '.tgz') { |
if ($istar) { |
fatal('404 Not Found', 'Unsupported archive type.'); |
fatal('500 Internal Error', 'tar command not found.') unless $CMD{tar}; |
|
fatal('500 Internal Error', 'gzip command not found.') unless $CMD{gzip}; |
|
} else { |
|
fatal('500 Internal Error', 'Unsupported archive type.'); |
|
} |
} |
|
|
my $tmpexportdir; |
my $tmpexportdir; |
Line 689 if ($input{tarball}) { |
|
Line 685 if ($input{tarball}) { |
|
local (*TAR_OUT); |
local (*TAR_OUT); |
|
|
my (@cmd, $ctype); |
my (@cmd, $ctype); |
if ($istar) { |
|
my @tar = ($CMD{tar}, @tar_options, '-cf', '-', $basedir); |
my @tar = ($CMD{tar}, @tar_options, '-cf', '-', $basedir); |
my @gzip = ($CMD{gzip}, @gzip_options, '-c'); |
my @gzip = ($CMD{gzip}, @gzip_options, '-c'); |
push(@cmd, \@tar, '|', \@gzip); |
push(@cmd, \@tar, '|', \@gzip); |
$ctype = 'application/x-gzip'; |
$ctype = 'application/x-gzip'; |
} |
|
push(@cmd, '>pipe', \*TAR_OUT); |
push(@cmd, '>pipe', \*TAR_OUT); |
|
|
my ($h, $err) = startproc(@cmd); |
my ($h, $err) = startproc(@cmd); |
Line 788 if (-d $fullname) { |
|
Line 782 if (-d $fullname) { |
|
|
|
# give direct access to dirs |
# give direct access to dirs |
if ($where eq '/') { |
if ($where eq '/') { |
chooseMirror(); |
|
chooseCVSRoot(); |
chooseCVSRoot(); |
|
|
} else { |
} else { |
print '<p>Current directory: <b>', clickablePath($where, 0), '</b>'; |
print '<p>Current directory: <b>', clickablePath($where, 0), '</b>'; |
print "</p>\n"; |
print "</p>\n"; |
|
|
|
|
if ($allow_tar && $filesfound) { |
if ($allow_tar && $filesfound) { |
my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),); |
my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),); |
my $havetar = $CMD{tar} && $CMD{gzip}; |
if (defined($basefile) && $basefile ne '') { |
if (defined($basefile) && $basefile ne '' && $havetar) { |
|
my $q = ($query ? "$query;" : '?') . 'tarball=1'; |
my $q = ($query ? "$query;" : '?') . 'tarball=1'; |
print "<hr />\n", |
print "<hr />\n", |
'<div style="text-align: center">Download this directory in '; |
'<div style="text-align: center">Download this directory in '; |
Line 1575 sub safeglob($) |
|
Line 1566 sub safeglob($) |
|
|
|
|
|
# |
# |
# Searches @command_path for the given executable file. |
|
# |
|
sub search_path($) |
|
{ |
|
my ($command) = @_; |
|
for my $d (@command_path) { |
|
my $cmd = catfile($d, $command); |
|
return $cmd if (-x $cmd && !-d _); |
|
} |
|
return ''; |
|
} |
|
|
|
|
|
# |
|
# Gets the MIME type for the given file name. |
# Gets the MIME type for the given file name. |
# |
# |
sub getMimeType($;$) |
sub getMimeType($;$) |
Line 2427 sub getDirLogs($$@) |
|
Line 2404 sub getDirLogs($$@) |
|
|
|
if ($linesread == 0) { |
if ($linesread == 0) { |
fatal('500 Internal Error', |
fatal('500 Internal Error', |
'Failed to spawn GNU rlog on <em>"%s"</em>.<br /><br />Did you set the <b><code>@command_path</code></b> in your configuration file correctly? (Currently: "<code>%s</code>")', |
'Failed to spawn rlog on <em>"%s"</em>', |
htmlquote(join(', ', @files)), join(':', @command_path)); |
htmlquote(join(', ', @files))); |
} |
} |
|
|
return @unreadable; |
return @unreadable; |
} |
} |
|
|
Line 3479 Module path or alias: |
|
Line 3455 Module path or alias: |
|
</p> |
</p> |
</form> |
</form> |
EOF |
EOF |
} |
|
|
|
|
|
sub chooseMirror() |
|
{ |
|
# This code comes from the original BSD-cvsweb |
|
# and may not be useful for your site; If you don't |
|
# set %MIRRORS this won't show up, anyway. |
|
scalar(%MIRRORS) or return; |
|
|
|
# Should perhaps exclude the current site somehow... |
|
print "\n<p>\nThis CVSweb is mirrored in\n"; |
|
|
|
my @tmp = map(&link(htmlquote($_), $MIRRORS{$_}), sort keys %MIRRORS); |
|
my $tmp = pop (@tmp); |
|
|
|
if (scalar(@tmp)) { |
|
print join (', ', @tmp), ' and '; |
|
} |
|
|
|
print "$tmp.\n</p>\n"; |
|
} |
} |
|
|
|
|