| #!/usr/bin/perl |
| |
| # perl script 'mkbuilddoc' |
| # Aug 24 2001 / Armin.Theissen@sun.com |
| # Mar 25 2005 / Volker Quetschke (vq@openoffice.org) |
| # |
| # creates the build documentation webpages for platforms |
| # linux, solaris and windows out of the template file. |
| # |
| # The optional -OOo1.1.x parameter creates OOo 1.1.x build |
| # instructions, i.e. the filename with "_1.1.x". |
| # |
| # name of template: build_template[_1.1.x].html |
| # name of resulting linux build doc. file: build_linux[_1.1.x].html |
| # solaris build_solaris[_1.1.x].html |
| # windows with 4NT build_windows[_1.1.x].html |
| # windows with tcsh build_windows_tcsh[_1.1.x].html |
| # |
| # usage: ./mkbuildoc [-OOo1.1.x] linux |
| # ./mkbuildoc [-OOo1.1.x] solaris |
| # ./mkbuildoc [-OOo1.1.x] windows |
| # ./mkbuildoc [-OOo1.1.x] windows_tcsh |
| |
| #use strict; # pragma |
| |
| ### global vars ### |
| $platform = ""; |
| $doc_ver = ""; |
| |
| ### main ### |
| |
| # get the platform from the argument |
| # |
| get_options(); |
| |
| if ( ! $platform ) { |
| usage(); |
| print STDERR "\nNo or invalid platform given, please choose one."; |
| exit 1; |
| } |
| |
| $platform =~ tr/A-Z/a-z/; |
| $outfile = "build_".$platform.$doc_ver.".html"; |
| print "outfile will be $outfile\n"; |
| |
| # read in template file as one long string |
| # |
| $infile = "build_template".$doc_ver.".html"; |
| open(IN, $infile) or die "Input file [$infile] missing!"; |
| undef $/; |
| $text = <IN>; |
| close(IN); |
| $/ = "\n"; |
| |
| #remove the tags for the specified platform out of the text: |
| # |
| if ($platform eq "linux") { |
| $text =~ s/<Linux>|<\/Linux>//g; |
| $text =~ s/<LinuxSolaris>|<\/LinuxSolaris>//g; |
| $text =~ s/<LinuxSolarisWin_tcsh>|<\/LinuxSolarisWin_tcsh>//g; |
| } elsif ($platform eq "solaris") { |
| $text =~ s/<Solaris>|<\/Solaris>//g; |
| $text =~ s/<LinuxSolaris>|<\/LinuxSolaris>//g; |
| $text =~ s/<LinuxSolarisWin_tcsh>|<\/LinuxSolarisWin_tcsh>//g; |
| } elsif ($platform eq "windows_tcsh") { |
| $text =~ s/<Win_tcsh>|<\/Win_tcsh>//g; |
| $text =~ s/<LinuxSolarisWin_tcsh>|<\/LinuxSolarisWin_tcsh>//g; |
| $text =~ s/<WindowsWin_tcsh>|<\/WindowsWin_tcsh>//g; |
| } elsif ($platform eq "windows") { |
| $text =~ s/<Windows>|<\/Windows>//g; |
| $text =~ s/<WindowsWin_tcsh>|<\/WindowsWin_tcsh>//g; |
| } |
| |
| #remove all text between the remaining tags including the tags. |
| # |
| $text =~ s/<Linux>[\d\D]*?<\/Linux>//g; |
| $text =~ s/<Solaris>[\d\D]*?<\/Solaris>//g; |
| $text =~ s/<Win_tcsh>[\d\D]*?<\/Win_tcsh>//g; |
| $text =~ s/<LinuxSolaris>[\d\D]*?<\/LinuxSolaris>//g; |
| $text =~ s/<LinuxSolarisWin_tcsh>[\d\D]*?<\/LinuxSolarisWin_tcsh>//g; |
| $text =~ s/<Windows>[\d\D]*?<\/Windows>//g; |
| $text =~ s/<WindowsWin_tcsh>[\d\D]*?<\/WindowsWin_tcsh>//g; |
| |
| # write out the result |
| # |
| open(OUT, ">$outfile"); |
| print OUT "$text"; |
| close(OUT); |
| |
| |
| ### Procedures ### |
| |
| # |
| # Get all options passed |
| # |
| sub get_options { |
| my $arg; |
| while ($arg = shift @ARGV) { |
| $arg =~ /^-OOo1.1.x$/i and $doc_ver="_1.1.x" and next; |
| $arg =~ /^linux$|^solaris$|^windows$|^windows_tcsh$/i and $platform=$arg and next; |
| }; |
| }; |
| |
| sub usage { |
| print STDERR "\nmkbuilddoc\n\n"; |
| print STDERR "Syntax: mkbuilddoc [-OOo1.1.x] [linux|solaris|windows|windows_tcsh]\n"; |
| print STDERR "Example: mkbuilddoc linux\n"; |
| print STDERR " - creates build_linux.html from build_template.html\n\n"; |
| print STDERR "Example: mkbuilddoc -OOo1.1.x windows\n"; |
| print STDERR " - creates build_windows_1.1.x.html from build_template_1.1.x.html\n\n"; |
| print STDERR "Default: - None. Provide a target!\n"; |
| }; |