X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=docs%2Fautodocifier.pl;h=c39260acbf3e2b5e43850bf870490f97b437b625;hb=277eb6bb444dd0f348079d7d37487f224c9abe39;hp=e1101d9d0e5632779427b8815b4a6b2655844ae4;hpb=55c704c119c871e25253d8dc3582f623d7d47708;p=oweals%2Fbusybox.git diff --git a/docs/autodocifier.pl b/docs/autodocifier.pl index e1101d9d0..c39260acb 100755 --- a/docs/autodocifier.pl +++ b/docs/autodocifier.pl @@ -21,8 +21,8 @@ sub continuation { # regex && eval away unwanted strings from documentation sub beautify { my $text = shift; - $text =~ s/USAGE_NOT\w+\(.*?"\s*\)//sxg; - $text =~ s/USAGE_\w+\(\s*?(.*?)"\s*\)/$1"/sxg; + $text =~ s/SKIP_\w+\(.*?"\s*\)//sxg; + $text =~ s/USE_\w+\(\s*?(.*?)"\s*\)/$1"/sxg; $text =~ s/"\s*"//sg; my @line = split("\n", $text); $text = join('', @@ -51,10 +51,14 @@ sub pod_for_usage { # make options bold my $trivial = $usage->{trivial}; - $trivial =~ s/(?/sxg; + if (!defined $usage->{trivial}) { + $trivial = ""; + } else { + $trivial =~ s/(?/sxg; + } my @f0 = map { $_ !~ /^\s/ && s/(?/g; $_ } - split("\n", $usage->{full}); + split("\n", (defined $usage->{full} ? $usage->{full} : "")); # add "\n" prior to certain lines to make indented # lines look right @@ -83,28 +87,23 @@ sub pod_for_usage { split("\n", $usage->{example})) . "\n\n" : ""; + # Pad the name so that the applet name gets a line + # by itself in BusyBox.txt + my $spaces = 10 - length($name); + if ($spaces > 0) { + $name .= " " x $spaces; + } + return "=item B<$name>". "\n\n$name $trivial\n\n". "$full\n\n" . "$notes" . "$example" . - "-------------------------------". "\n\n" ; } -# FIXME | generate SGML for an applet -sub sgml_for_usage { - my $name = shift; - my $usage = shift; - return - "\n". - " $name\n". - "\n" - ; -} - # the keys are applet names, and # the values will contain hashrefs of the form: # @@ -124,7 +123,6 @@ my %opt; GetOptions( \%opt, "help|h", - "sgml|s", "pod|p", "verbose|v", ); @@ -133,7 +131,6 @@ if (defined $opt{help}) { print "$0 [OPTION]... [FILE]...\n", "\t--help\n", - "\t--sgml\n", "\t--pod\n", "\t--verbose\n", ; @@ -163,11 +160,22 @@ foreach (@ARGV) { # generate structured documentation my $generator = \&pod_for_usage; -if (defined $opt{sgml}) { - $generator = \&sgml_for_usage; + +my @names = sort keys %docs; +my $line = "\t[, [[, "; +for (my $i = 0; $i < $#names; $i++) { + if (length ($line.$names[$i]) >= 65) { + print "$line\n\t"; + $line = ""; + } + $line .= "$names[$i], "; } +print $line . $names[-1]; -foreach my $applet (sort keys %docs) { +print "\n\n=head1 COMMAND DESCRIPTIONS\n"; +print "\n=over 4\n\n"; + +foreach my $applet (@names) { print $generator->($applet, $docs{$applet}); } @@ -191,18 +199,18 @@ Example: =head1 DESCRIPTION -The purpose of this script is to automagically generate documentation -for busybox using its usage.h as the original source for content. -It used to be that same content has to be duplicated in 3 places in -slightly different formats -- F, F, and -F. This was tedious and error-prone, so it was +The purpose of this script is to automagically generate +documentation for busybox using its usage.h as the original source +for content. It used to be that same content has to be duplicated +in 3 places in slightly different formats -- F, +F. This was tedious and error-prone, so it was decided that F would contain all the text in a machine-readable form, and scripts could be used to transform this text into other forms if necessary. -F is one such script. -It was based on a script by Erik Andersen -which was in turn based on a script by Mark Whitley +F is one such script. It is based on a script by +Erik Andersen which was in turn based on a +script by Mark Whitley =head1 OPTIONS @@ -216,10 +224,6 @@ This displays the help message. Generate POD (this is the default) -=item B<--sgml> - -Generate SGML - =item B<--verbose> Be verbose (not implemented) @@ -292,4 +296,4 @@ John BEPPU =cut -# $Id: autodocifier.pl,v 1.25 2004/03/13 08:32:14 andersen Exp $ +# $Id: autodocifier.pl,v 1.26 2004/04/06 15:26:25 andersen Exp $