#-*- mode: perl; perl-indent-level: 4; cperl-indent-level: 4 -*- use File::Basename; fileparse_set_fstype; # Unix, in case one gets anything else. open OUTFILE,">$ARGV[1]" || die "Couldn't open CONTENTS file"; while(<$ARGV[0]/man/*.Rd>){ # my $rdname = basename($_, (".Rd", ".rd")); $ARGV[0] =~ /([^\/]*)$/; my $pkg =$1; open(rdfile, "<$_"); undef $text; while(){ $text .= $_; } close rdfile; $text =~ /\\name\{\s*([^\}]+)\s*\}/s; my $name = $1; $text =~ /\\title\{\s*([^\}]+)\s*\}/s; my $rdtitle = $1; $rdtitle =~ s/\n/ /sg; undef @keywords; while($text =~ s/\\alias\{\s*(.*)\s*\}//){ $keyword = $1; $keyword =~ s/\\%/%/g; push @keywords, $keyword; } while($text =~ s/\\keyword\{\s*(.*)\s*\}//){ $keyword = $1; $keyword =~ s/\\%/%/g; push @keywords, $keyword; } $, = " "; print OUTFILE "Entry: $name\n"; print OUTFILE "Keywords: @keywords\n"; print OUTFILE "Description: $rdtitle\n"; print OUTFILE "URL: ../../../library/$pkg/html/$name.html\n\n"; }