#!/usr/local/bin/perl # # Copyright (c) Oct 1997-1999 Wolfram Schneider . Berlin. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # url.cgi - make plain text URLs clickable # # $Id: url.cgi,v 1.15 1999-02-01 14:27:03 wosch Exp $ $hsty_base = ''; $hsty_email = 'ports@freebsd.org'; require "./cgi-lib.pl"; require "./cgi-style.pl"; $file = $ENV{'QUERY_STRING'}; $uri = "$file"; if ($file !~ m%^(http|ftp)://[a-z_\-0-9]+\.freebsd\.(com|org)%i) { &CgiError(("Wrong url: $file", "Only http://*.freebsd.* is allowed.\n")); exit(0); } # catch '..', multiple times # ports/japanese/ppxp/../../net/ppxp/pkg/DESCR # -> ports/net/ppxp/pkg/DESCR 1 while $file =~ s%/[^/]+/\.\./%/%; my($cvsroot) = '/home/ncvs'; $file =~ s%(http|ftp)://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/%%; print &short_html_header($file); if ($file =~ m%^ports/[\w-]+/\w[\w-+.]+/pkg/DESCR% && -f "$cvsroot/$file,v") { open(CO, "-|") || exec ('/usr/bin/co', '-p', '-q', "$cvsroot/$file,v"); } else { print "

Port does not exists or invalid port name: $file\n"; print "

Please contact the webmaster!\n"; } print "\n


\n
\n";

my($content);
$content .= $_ while();
$content =~ s/])%$1%gi;

print $content;
print "
\n"; # Add 'source' link for freebsd ports if ($file =~ m%pub/FreeBSD/FreeBSD-current/(ports/[^/]+/[^/]+)/pkg/DESCR$%) { print qq{
Sources\n}; print qq{| Help\n}; print qq{
\n}; } print &html_footer; exit;