#! @PERL@ #-*- mode: perl; perl-indent-level: 4; cperl-indent-level: 4 -*- # # ${RHOME}/bin/build-help # Usage: build-help [--rhome dir] [--html] [--nroff] [--latex] [--example] # [--dosnames] [--htmllists] [pkg] [lib] # Install all html help files for package pkg to library lib # (defaults are `${RHOME}/src/library/base' and the default library, # `${RHOME}/library', respectively). use File::Basename; use Cwd; use Getopt::Long; @knownoptions = ("rhome:s", "html", "nroff", "latex", "example", "debug", "dosnames", "htmllists"); GetOptions (@knownoptions) || usage(); $cwd=getcwd(); if($opt_rhome){ $RHOME=$opt_rhome; print STDERR "RHOME from --rhome: '$RHOME'\n" if $opt_debug; } elsif($ENV{"RHOME"}){ $RHOME=$ENV{"RHOME"}; print STDERR "RHOME from ENV: '$RHOME'\n" if $opt_debug; } else{ chdir(dirname($0) . "/.."); $RHOME=getcwd(); } chdir($cwd); print STDERR "Current directory (cwd): '$cwd'\n" if $opt_debug; require "$RHOME/etc/Rdconvlib.pl"; require "$RHOME/etc/buildlib.pl"; # if option --htmllists is set we only rebuild some list files and # exit if($opt_htmllists){ build_htmlpkglist("$RHOME/library"); %anindex = read_anindex("$RHOME/library"); %htmlindex = read_htmlindex("$RHOME/library"); build_htmlfctlist("$RHOME/library"); exit 0; } # default is to build all documentation formats if(!$opt_html && !$opt_nroff && !$opt_latex && !$opt_example){ $opt_html = 1; $opt_nroff = 1; $opt_latex = 1; $opt_example = 1; } ($pkg, $lib, @mandir) = buildinit(); $dest = "$lib/$pkg"; print STDERR "Destination 'dest'= '$dest'\n" if $opt_debug; # if building help or html pages we have to create the corresponding # directories and build some indices if($opt_html || $opt_nroff){ build_index(); } if($opt_latex){ $latex_d="$dest/latex"; mkdir "$latex_d", $dir_mod || die "Could not create $latex_d: $!\n"; } if($opt_example){ $Rex_d="$dest/R-ex"; mkdir "$Rex_d", $dir_mod || die "Could not create $Rex_d: $!\n"; } print " >>> Building help pages for package `$pkg'\n"; print " Formats: "; print "text " if $opt_nroff; print "html " if $opt_html; print "latex " if $opt_latex; print "example " if $opt_example; print "\n"; # get %htmlindex and %anindex if($opt_html){ %anindex = read_anindex($lib); %htmlindex = read_htmlindex($lib); build_htmlfctlist($lib); } format STDOUT = @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<< @<<<<<< @<<<<<< @<<<<<< $manfilebase, $textflag, $htmlflag, $latexflag, $exampleflag . foreach $manfile (@mandir) { if($manfile =~ /\.[Rr]d$/) { $manfilebase = basename($manfile, (".Rd", ".rd")); $manage = (-M $manfile); $textflag = $htmlflag = $latexflag = $exampleflag = ""; if($opt_nroff){ $destfile = "$dest/help/$manfilebase"; if(fileolder($destfile, $manage)) { $textflag = "text"; open(nroffout, "| tbl | nroff -ms 2> /dev/null | " . " ${RHOME}/bin/help.pretty > '$destfile'"); Rdconv($manfile, "nroff", "", -1);# maybe $opt_debug } } if($opt_html){ my $targetfile = $anindex{$manfilebase}; $destfile = "$dest/html/$targetfile.$HTML"; if(fileolder($destfile,$manage)) { $htmlflag = "html"; print "\t$destfile" if $opt_debug; Rdconv($manfile, "html", "", "$destfile");# "": maybe $opt_debug } } if($opt_latex){ $destfile = "$latex_d/$manfilebase.tex"; if(fileolder($destfile,$manage)) { $latexflag = "latex"; Rdconv($manfile, "latex", "", "$destfile");# maybe $opt_debug } } if($opt_example){ $destfile = "$Rex_d/$manfilebase.R"; if(fileolder($destfile,$manage)) { $exampleflag = "example"; Rdconv($manfile, "example", "", "$destfile");# maybe $opt_debug } } write if ($textflag || $htmlflag || $latexflag || $exampleflag); } } sub usage { print "Usage: build-help [--rhome dir] [--html] [--nroff]\n" . " [--latex] [--example] [--dosnames] [pkg] [lib]\n"; exit 0; }