head	1.10;
access;
symbols
	HRS_XML_CLEANUP:1.9
	HRS_XML_CLEANUP_PRE:1.8
	EMILYBOYD_REDESIGN:1.8
	PRE_REDESIGN:1.7
	XML_XSL_XP:1.6.0.2
	XML_XSL_XP_BP:1.6
	jesusr:1.1.1.1
	ES_WWW:1.1.1;
locks; strict;
comment	@# @;


1.10
date	2008.01.28.23.06.10;	author gabor;	state dead;
branches;
next	1.9;

1.9
date	2006.08.19.21.22.34;	author hrs;	state Exp;
branches;
next	1.8;

1.8
date	2005.10.04.07.56.19;	author murray;	state Exp;
branches;
next	1.7;

1.7
date	2003.06.24.10.22.31;	author phantom;	state Exp;
branches;
next	1.6;

1.6
date	2001.01.02.01.49.05;	author kuriyama;	state Exp;
branches;
next	1.5;

1.5
date	2000.11.29.23.56.58;	author kuriyama;	state Exp;
branches;
next	1.4;

1.4
date	99.07.01.21.01.03;	author jesusr;	state Exp;
branches;
next	1.3;

1.3
date	99.04.21.11.44.43;	author asami;	state Exp;
branches;
next	1.2;

1.2
date	99.03.18.13.55.09;	author jesusr;	state Exp;
branches;
next	1.1;

1.1
date	99.02.08.19.26.11;	author wosch;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	99.02.08.19.26.11;	author wosch;	state Exp;
branches;
next	;


desc
@@


1.10
log
@- Remove another bunch of old, untranslated stuff

Discussed with:	carvay
@
text
@#!/usr/bin/perl

# convert a ports INDEX file to HTML
#
# by John Fieber <jfieber@@freebsd.org>
# Mon May 13 10:31:58 EST 1996

############################################################

# Load local config file. You can override in portindex.conf
# the variables for the default web and the ftp server. This
# make it easy to maintain a local web mirror and let the
# URL point to yourself and not to the standard FreeBSD FTP server.
$config = $0 . '.' . 'conf';
do $config if -f $config;

# This is the base of where we ftp stuff from
if ($ENV{'MASTER_FTP_SERVER'}) {
    $ftpserver = $ENV{'MASTER_FTP_SERVER'};
} else {
    $ftpserver = 'ftp://ftp.freebsd.org' if !$ftpserver;
}
$base = "$ftpserver/pub/FreeBSD/FreeBSD-current" if !$base;
$baseHTTP = $base if !$baseHTTP;
$urlcgi = 'http://www.freebsd.org/cgi/url.cgi' if !$urlcgi;
$packagesURL = "$ftpserver/pub/FreeBSD/ports/i386/packages-stable/All/"
    if !$packagesURL;
# support tar on the fly or gzip'ed tar on the fly
$ftparchive = 'tar' if !$ftparchive;


# ports download sources script
$pds = 'http://www.freebsd.org/cgi/pds.cgi';

# better layout and link to the sources
if ($urlcgi) {
    $baseHTTP = $urlcgi . '?' . $baseHTTP;
}

$today = &getdate;

&packages_exist('packages.exists', *packages);
&category_description(($ARGV[1] || '.') . '/categories', *category_description);
&main;

sub getdate {
    @@months = ("January", "February", "March", "April", "May","June",
	       "July", "August", "September", "October", "November", "December");
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
    $year += 1900;
    return "Updated $months[$mon] $mday, $year";
}

sub header {
    local ($fh, $htext) = @@_;
    print $fh "<!DOCTYPE html PUBLIC \"-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN\" [\n";
    print $fh "<!ENTITY base CDATA '..'>";
    print $fh "<!ENTITY date  \"<em>$today</em>\">\n";
    print $fh "<!ENTITY title '$htext'>";
    print $fh "<!ENTITY blurb  SYSTEM \"ports.inc\">\n";
    print $fh "<!ENTITY % navinclude.ports \"INCLUDE\">\n";
    print $fh "<!ENTITY email 'ports'>";
    print $fh "]>\n";
    print $fh "<html>&header;\n";
}

sub footer {
    local ($fh, $ftext) = @@_;
    print $fh "\n$ftext\n";
    print $fh "&footer;\n";
    print $fh "</BODY>\n</HTML>\n";
}

sub packages_exist {
    local($file, *p) = @@_;

    open(P, $file) || do {
	warn "open $file: $!\n";
	warn "Cannot create packages links\n";
	return 1;
    };

    while(<P>) {
	chop;
	$p{$_} = 1;
    }
    close P;
    return 0;
}

sub category_description {
    local($file, *p) = @@_;

    open(P, $file) || do {
	warn "open $file: $!\n";
	warn "Cannot find category description\n";
	return 1;
    };

    local($category, $description);
    while(<P>) {
	# ignore comments
	next if /^\s*#/;

       ($category, $description) = /^\s*"([^"]+)",\s*"([^"]+)/;
	$p{$category} = $description;
    }
    close P;
    return 0;
}

sub main {

    $sep = "<B>:</B>";

    open(INDEX, $ARGV[0]);
    while (<INDEX>) {
	chop;
	s/&/&amp;/g;
    	s/</&lt;/g;
    	s/>/&gt;/g;

    	# Read a record
	($name, $loc, $prefix, $desc, $ldesc, $owner, $cats, 
	    $bdep, $rdep, $www) = split('\|');

	# Check for double hyphens in the name (--).
	$name =~ s/--/-/g;

    	# Split the categories into an array
	@@cat = split("[ \t]+", $cats);

    	$catkey{$name} = $cat[0];

	local($sourcepath) = $loc;
	$sourcepath =~ s%/usr/%%;
	
	foreach $i (@@cat) {

	    $stats{$i}++;

    	    # figure out the FTP url
	    $loc =~ s/\/usr/$base/;
	    $ldesc =~ s/\/usr/$baseHTTP/;

    	    # The name description and maintainer
	    $data{$i} .= "<DT><B><A NAME=\"$name\"></A><A HREF=\"$loc.$ftparchive\">$name</A></B> ";
     

	    $data{$i} .= "<DD>$desc<BR><A HREF=\"$ldesc\">Long description</A>";
	    if ($packages{"$name.tgz"}) { 
		$data{$i} .= qq{ | <a href="$packagesURL$name.tgz">Package</a>};
	    }

	    $data{$i} .= qq{ | <A HREF="$pds?$sourcepath">Sources</A>};

            if ($www ne "") {
		$data{$i} .= qq{ | <a href="$www">Main Web Site</a>};
            }

    	    $ownerurl = $owner;
    	    $ownerurl =~ s/&lt;/</g;
    	    $owenrurl =~ s/&gt;/>/g;
	    $data{$i} .= 
		"<BR><I>Maintained by:</I> <A HREF=\"mailto:$ownerurl\">$owner</A>";

    	    # If there are any dependencies, list them
    	    if ($bdep ne "" || $rdep ne "") {
    	    	$data{$i} .= "<BR><I>Requires:</I> ";
    	    	@@dep = split(/ /, "$bdep $rdep");
		local($last) = '';
    	    	foreach $j (sort @@dep) {
		    next if $j eq $last;
		    $last = $j;
    	    	    $data{$i} .= " <A HREF=\"##$j##.html#$j\">$j</A>,";
    	    	}
    	    	# remove the trailing comma
    	    	chop $data{$i};
    	    }

    	    # If the port is listed in more than one category, throw
    	    # in some cross references
    	    if ($#cat > 0) {
    	    	$data{$i} .= "<BR><EM>Also listed in:</EM> ";
    	    	foreach $j (@@cat) {
    	    	    if ($j ne $i) {
			if ($j eq $cat[0]) {
			    $data{$i} .= " <STRONG><A HREF=\"$j.html#$name\">\u$j</A></STRONG>,";
			}
			else {
			    $data{$i} .= " <A HREF=\"$j.html#$name\">\u$j</A>,";
			}
    	    	    }
    	    	}
    	    	# remove the trailing comma
    	    	chop($data{$i});
    	    }
    	    $data{$i} .= "<P></P></DD>\n"
	}

    	# Add an entry to the master index

	# workaround for SGML bug, `--' is not allowed in comments
	local ($sname) = $name; 
	$sname =~ s/--/-=/g;
    	$master[$portnumber] = 
    	    "<!-- $sname --><STRONG><A HREF=\"$cat[0].html#$name\">$name</A></STRONG> " .
    	    " -- <EM>$desc</EM><BR>\n";
	$portnumber++;
    }

    open(MOUTF, ">index.sgml");

    &header(MOUTF, "FreeBSD Ports");
#    print MOUTF "<!--#include virtual=\"./ports.inc\" -->\n";
    print MOUTF "&blurb;";
    print MOUTF "<hr><P>There are currently $portnumber ports in the
FreeBSD Ports Collection.<br> <A HREF=\"$base/ports.tar.gz\">Download
a gzip'd tar file of all $portnumber ports</A> (about 7 megabytes) or
browse the following categories:\n";

    print MOUTF "<UL>\n";

    @@foos = sort(keys %stats);
    foreach $key  (@@foos) {
	# For the master file...
	print MOUTF 
	    "<LI><A HREF=\"$key.html\">\u$key</A> <em>($stats{$key})</em>";
	if ($category_description{$key}) {
	    print MOUTF " -- " . $category_description{$key};
	}
	print MOUTF "</LI>\n";

	# Create the category file
	open(OUTF, ">$key.sgml");
	&header(OUTF, "FreeBSD Ports: \u$key");
	if ($category_description{$key}) {
	    print OUTF "<h3>", $category_description{$key}, "</h3>\n";
	}
	print OUTF "<DL>\n";
	$d = join("\n", sort(split(/\n/, $data{$key})));
    	$d =~ s/##([^#]*)##/$catkey{$1}/g;
	print OUTF $d;
	print OUTF "</DL>\n";
	&footer(OUTF, "<HR><A HREF=\"index.html\">Port Categories</A>" .
	    " -- <A HREF=\"master-index.html\">Index</A><HR>");
	close(OUTF);

    }
    print MOUTF "</UL>\n";
    print MOUTF 
    	"<UL><LI><A HREF=\"master-index.html\">Alphabetical list of all $portnumber ports</A></LI></UL>\n";
    &footer(MOUTF, "");
    close(MOUTF);

    # Create the master index file
    open(MINDEX, ">master-index.sgml");
    &header(MINDEX, "FreeBSD Ports Collection Index");
    print MINDEX "<P>\n";
    print MINDEX sort @@master;
    print MINDEX "</P>";
    &footer(MINDEX, "<HR><A HREF=\"index.html\">Port Categories</A><HR>");
    close(MINDEX);
    close(INDEX);
}
@


1.9
log
@www cleanup mega commit:

 - Move includes.nav*.sgml to share/sgml/navibar.ent and
   <lang>/share/sgml/navibar.l10n.ent.

 - Move includes.sgml and includes.xsl to
   share/sgml/common.ent, share/sgml/header.ent, <lang>/share/sgml/l10n.ent,
   and <lang>?share/sgml/header.l10n.ent.

 - Move most of XSLT libraries to share/sgml/*.xsl and
   <lang>/share/sgml/*.xsl.

 - Move news.xml and other *.xml files for the similar purpose
   to share/sgml/*.xml and <lang>/share/sgml/*.xml.

 - Switch to use a custom DTD for HTML document.  Now we use
   "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension", which is
   HTML 4.01 + some entities previously pulled via
   "<!ENTITY % includes SYSTEM "includes.sgml"> %includes;" line.
   The location of entity file will be resolved by using catalog file.

 - Add DOCTYPE declearation to XML documents.  This makes the followings
   possible:

   * Use of &foo; entities for SGML in an XML file instead of defining
     {$foo} as the same content.

   * &symbolic; entities for Latin characters.

 - Duplicated information between SGML and XML, or English and
   translated doc, has been removed as much as possible.
@
text
@@


1.8
log
@Merge new redesign to Spanish translation.

Submitted by:   Emily Boyd <emilyboyd@@emilyboyd.com>
Sponsored by:   Google Summer of Code 2005
@
text
@d56 1
a56 1
    print $fh "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" [\n";
d61 1
a61 2
    print $fh "<!ENTITY % navincludes SYSTEM \"../includes.navdownload.sgml\"> %navincludes;\n";
    print $fh "<!ENTITY % includes SYSTEM \"../includes.sgml\">\n";
a62 1
    print $fh "%includes;\n";
@


1.7
log
@Fix ${.CURDIR} != ${.OBJDIR} case.  It was not fatal error, but in
broken case categories descriptions wasn't found and descriptions were
missed in generated file.
@
text
@d56 1
a56 1
    print $fh "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\" [\n";
d61 1
@


1.6
log
@Remove more around ports/YEAR2000 in Spanish translation.
@
text
@d43 1
a43 1
&category_description(($ARGV[2] || '.') . '/categories', *category_description);
@


1.5
log
@Switch web.mk to share/mk/web.site.mk in Spanish version.
(with "obj" fixes)

Submitted by:	nbm
@
text
@a43 1
&y2k_statements;
a45 14
sub y2k_statements {

    open(Y2K, $ARGV[1]);
    while(<Y2K>) {
      chop();
      ( $dir, $url ) = split(/\s+/);
      $dir = $base . "/" . $dir;
      $y2k{$dir} = $url;
      
    }
    close(Y2K);

}

a156 4

            if ($y2k{"$loc"}) {
		$data{$i} .= qq{ | <a href="$y2k{$loc}">Y2K</a>};
            }
@


1.4
log
@Ports tarball is about 7Mb.
@
text
@d43 1
a43 1
&category_description('categories', *category_description);
@


1.3
log
@Get www site info from INDEX instead of WWW_SITE.  Note that I only
fixed the en and es versions; the ja version did not have the www
stuff in the first place so the translators can merge in the recent
changes at their leisure. :)

Reviewed (in principle) by:	wosch, scrappy
@
text
@d239 1
a239 1
a gzip'd tar file of all $portnumber ports</A> (about 5 megabytes) or
@


1.2
log
@Update to revisions:

Makefile: 1.20
portindex: 1.24
@
text
@a44 1
&www_sites;
a60 13
sub www_sites {

    open(WWW, $ARGV[2]);
    while(<WWW>) {
      chop();
      ( $dir, $url ) = split(/\s+/);
      $dir = $base . "/" . $dir;
      $www{$dir} = $url;
    }
    close(WWW);

}

d141 1
a141 1
	    $bdep, $rdep) = split('\|');
d177 2
a178 2
            if ($www{"$loc"}) {
		$data{$i} .= qq{ | <a href="$www{$loc}">Main Web Site</a>};
@


1.1
log
@Initial revision
@
text
@a15 1
    
d26 1
a26 1
$packagesURL = "$ftpserver/pub/FreeBSD/packages-stable/All/"
d44 2
d48 27
d146 2
a147 1
    while (<>) {
d187 8
d298 1
a298 1

@


1.1.1.1
log
@Imported the Spanish Web pages, except the

	english sub directories: cgi, commercial, gallery, gifs
	which are redundant and will never be translated

and the

	spanish sub directories: doc-es, docs-es

Submitted by: "Jesus Rodriguez" <jesusr@@ncsa.es>

Fix Makefiles errors. `Make all install' runs fine.

Currently, many the links to the sub directories cgi, commercial,
gallery, gifs are broken. The links should point to the English
orginal files.
@
text
@@
