Commit 5b229fbe authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Jonathan Corbet
Browse files

Add scripts/split-man.pl



Instead of asking the user to copy and paste a small perl script from
the documentation, just distribute the perl script in the scripts
directory.

Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent dcb50d97
Loading
Loading
Loading
Loading
+2 −28
Original line number Diff line number Diff line
@@ -528,32 +528,6 @@ How to use kernel-doc to generate man pages
-------------------------------------------

If you just want to use kernel-doc to generate man pages you can do this
from the Kernel git tree::
from the kernel git tree::

  $ scripts/kernel-doc -man $(git grep -l '/\*\*' |grep -v Documentation/) | ./split-man.pl /tmp/man

Using the small ``split-man.pl`` script below::


  #!/usr/bin/perl

  if ($#ARGV < 0) {
     die "where do I put the results?\n";
  }

  mkdir $ARGV[0],0777;
  $state = 0;
  while (<STDIN>) {
      if (/^\.TH \"[^\"]*\" 9 \"([^\"]*)\"/) {
	if ($state == 1) { close OUT }
	$state = 1;
	$fn = "$ARGV[0]/$1.9";
	print STDERR "Creating $fn\n";
	open OUT, ">$fn" or die "can't open $fn: $!\n";
	print OUT $_;
      } elsif ($state != 0) {
	print OUT $_;
      }
  }

  close OUT;
  $ scripts/kernel-doc -man $(git grep -l '/\*\*' -- :^Documentation :^tools) | scripts/split-man.pl /tmp/man

scripts/split-man.pl

0 → 100755
+28 −0
Original line number Diff line number Diff line
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
#
# Author: Mauro Carvalho Chehab <mchehab@s-opensource.com>
#
# Produce manpages from kernel-doc.
# See Documentation/doc-guide/kernel-doc.rst for instructions

if ($#ARGV < 0) {
   die "where do I put the results?\n";
}

mkdir $ARGV[0],0777;
$state = 0;
while (<STDIN>) {
    if (/^\.TH \"[^\"]*\" 9 \"([^\"]*)\"/) {
	if ($state == 1) { close OUT }
	$state = 1;
	$fn = "$ARGV[0]/$1.9";
	print STDERR "Creating $fn\n";
	open OUT, ">$fn" or die "can't open $fn: $!\n";
	print OUT $_;
    } elsif ($state != 0) {
	print OUT $_;
    }
}

close OUT;