#!/usr/bin/perl -w # -*- Mode: perl; indent-tabs-mode: nil -*- # # The contents of this file are subject to the Netscape 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 Bonsai CVS 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. # # Contributor(s): # # Query the CVS database. # use strict; # Shut up misguided -w warnings about "used only once". "use vars" just # doesn't work for me. sub sillyness { my $zz; $zz = $::Setup_String; $zz = $::script_type; } require 'CGI.pl'; $|=1; my $CVS_ROOT = $::FORM{"cvsroot"}; $CVS_ROOT = pickDefaultRepository() unless $CVS_ROOT; &validateRepository($CVS_ROOT); &LoadTreeConfig(); my $intreeid = &SanitizeModule($::FORM{'treeid'}); my $inmod = &SanitizeModule($::FORM{'module'}); if ($intreeid && exists($::TreeInfo{$intreeid}{'repository'}) && !exists($::TreeInfo{$intreeid}{'nobonsai'})) { $::TreeID = $intreeid; } elsif ($inmod && exists($::TreeInfo{$inmod}{'repository'}) && !exists($::TreeInfo{$inmod}{'nobonsai'})) { $::TreeID = $inmod; } else { $::TreeID = 'default'; } # get dir, remove leading and trailing slashes my $dir = $::FORM{"dir"} || ""; $dir =~ s/^[\/]+([^:]*)/$1/; $dir =~ s/([^:]*)[\/]+$/$1/; my $path = "$CVS_ROOT/$dir"; $path = &ChrootFilename($CVS_ROOT, $path); die "Invalid directory: " . &shell_escape($dir) . ".\n" if (! -d $path); my $rev = &SanitizeRevision($::FORM{"rev"}); print "Content-type: text/html\n\n"; my $registryurl = Param('registryurl'); $registryurl =~ s@/$@@; my $script_str; &setup_script; $::Setup_String = $script_str; my $s = ""; if ($rev) { $s = "for branch $rev"; } my $revstr = ''; $revstr = "&rev=$rev" unless $rev eq ''; my $rootstr = ''; $rootstr .= "&cvsroot=$CVS_ROOT"; $rootstr .= "&module=$::TreeID"; my $module = $::TreeInfo{$::TreeID}{'module'}; my $toplevel = Param('toplevel'); &PutsHeader("Repository Directory $toplevel/" . &html_quote($dir) . " $s", ""); my $output = "
'; my $other_dir; ($other_dir = $dir) =~ s!^$module/?!!; my $other_dir_used = 1; LoadDirList(); if (-d "$CVS_ROOT/$dir") { chdir "$CVS_ROOT/$dir"; $other_dir_used = 0; } elsif (-d "$CVS_ROOT/$other_dir") { chdir "$CVS_ROOT/$other_dir"; } else { chdir "$CVS_ROOT"; } print "
Directories:\n"; print "
Files:\n"; print "
| \n\n"; cvsmenu(""); print " | \n