#!/usr/bin/perl -w

# Copyright (c) 1998 by Marco Budde (Budde@tu-harburg.de)
# Copyright (c) 2001 by Colin Watson (cjwatson@debian.org)
# Copyright (c) 2001 by Karl Soderstrom (ks@debian.org)
# GNU General Public License

##############################################################
#   sgmltools -> doc-base, index.html                        #
#                                                            # 
#       usage:  sgml2docbase <doc-base section> <output dir> #
##############################################################

# you
$maintainer = 'Karl Soderstrom (ks@debian.org)';

# regexp to find the root html file of a document
$file_expr = '^(.+)[^0-9]-se\.html$';

# regexp to produce a link name from the file name
$title_expr = '^(.+)-se\.html$';


##############################
#  get abstract of document  #
##############################

sub get_abstract
{
  my $zw;

  open (IN, "< $filename") or die "can't open $filename!\n";
  $abstract = '';
  while ($zw = <IN>)
  {
    if ($zw =~ /<EM>(.*)/)
    {
      $abstract = $1;
      while ($zw !~ /<\/EM>/)
      {
        if (!($zw = <IN>))
        {
          $abstract = '';
          return;
        }
        chop ($zw);
        $abstract .= ' ' . $zw;
      } 
      $abstract =~ s/<EM>//g;
      $abstract =~ s/<\/EM>//g;
      $abstract =~ s/<HR>//g;
      $abstract =~ s/<\/P>//g;
      close (IN);
			return;
    }
  }
}


####################
#  write doc-base  #
####################

sub doc_base_pwd
{
    $pwd = `pwd`;
    $pwd =~ s#.*(/usr/share/doc/.*)#$1#;
}

sub write_doc_base
{
    open DOCBASE, "> $ARGV[1]/$docid"
	or die "can't write to $ARGV[1]/$docid: $!";
    print DOCBASE <<EOF;
Document: $docid
Title: $linkname
Abstract: $abstract
Section: $ARGV[0]

Format: HTML
Index: $pwd/$filename
Files: $pwd/$filename*.html

EOF
    close DOCBASE;
}


########################
#  index.html support  #
########################

sub write_index
{
  print INDEX "<DT><A HREF=\"$filename\">$linkname</A>\n";
  print INDEX "<DD>$abstract\n\n";
}


################
#     main     #
################

opendir (DIRHANDLE, '.');
@dircontent = readdir (DIRHANDLE);
closedir (DIRHANDLE);

open (INDEX, "> index.html");
print INDEX "<HTML>\n<BODY BGCOLOR=FFFFFF>\n<DL>\n";

foreach $filename (sort @dircontent)
{
  if ($filename =~ /$file_expr/)
  {
    $filename =~ /$title_expr/;
    my $title = $1;
    $docid = "ldp-sv-$title";
    $docid =~ s/-HOWTO$//;
    $linkname = $title;
    $linkname =~ s/-HOWTO/ HOWTO/g;
    print "$filename\n";
    &get_abstract;
    &write_doc_base;
    &write_index;
  }
}

print INDEX "</DL>\n<HR>\n<ADDRESS><SMALL>\n";
print INDEX "Please send comments to $maintainer.\n";
$time = gmtime (time);
print INDEX "<BR>This page was created $time GMT.</SMALL></ADDRESS>\n";
print INDEX "</BODY>\n</HTML>\n";
close (INDEX);

