diff options
Diffstat (limited to 'docs-xml/scripts')
-rwxr-xr-x | docs-xml/scripts/find_missing_doc.pl | 57 | ||||
-rwxr-xr-x | docs-xml/scripts/find_missing_manpages.pl | 39 | ||||
-rwxr-xr-x | docs-xml/scripts/indent-smb.conf.pl | 8 | ||||
-rwxr-xr-x | docs-xml/scripts/neatquotes.pl | 12 |
4 files changed, 116 insertions, 0 deletions
diff --git a/docs-xml/scripts/find_missing_doc.pl b/docs-xml/scripts/find_missing_doc.pl new file mode 100755 index 0000000000..2b557b974d --- /dev/null +++ b/docs-xml/scripts/find_missing_doc.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +my %doc; + +$topdir = (shift @ARGV) or $topdir = "."; + +################################################## +# Reading links from manpage + +$curdir = $ENV{PWD}; + +chdir("smbdotconf"); + +open(IN,"xsltproc --xinclude --param smb.context ALL generate-context.xsl parameters.all.xml|"); + +while(<IN>) { + if( /<listitem><para><link linkend="([^"]*)"><parameter moreinfo="none">([^<]*)<\/parameter><\/link><\/para><\/listitem>/g ){ + $doc{$2} = $1; + } +} + +close(IN); + +chdir($curdir); + +################################################# +# Reading entries from source code + + +open(SOURCE,"$topdir/param/loadparm.c") or die("Can't open $topdir/param/loadparm.c: $!"); + +while ($ln = <SOURCE>) { + last if $ln =~ m/^static\ struct\ parm_struct\ parm_table.*/; +} #burn through the preceding lines + +while ($ln = <SOURCE>) { + last if $ln =~ m/^\s*\}\;\s*$/; + #pull in the param names only + next if $ln =~ m/.*P_SEPARATOR.*/; + next unless $ln =~ /\s*\{\"(.*)\".*/; + + if($doc{lc($1)}) { + $doc{lc($1)} = "FOUND"; + } else { + print "'$1' is not documented\n"; + } +} +close SOURCE; + +################################################## +# Trying to find missing references + +foreach (keys %doc) { + if($doc{$_} cmp "FOUND") { + print "'$_' is documented but is not a configuration option\n"; + } +} diff --git a/docs-xml/scripts/find_missing_manpages.pl b/docs-xml/scripts/find_missing_manpages.pl new file mode 100755 index 0000000000..c468d7d1ee --- /dev/null +++ b/docs-xml/scripts/find_missing_manpages.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl + +my %doc; + +$invar = 0; + +$topdir = (shift @ARGV) or $topdir = "."; + +$progs = ""; + +open(IN, "$topdir/Makefile.in"); +while(<IN>) { + if($invar && /^([ \t]*)(.*?)([\\])$/) { + $progs.=" " . $2; + if($4) { $invar = 1; } else { $invar = 0; } + } elsif(/^([^ ]*)_PROGS([0-9]*) = (.*?)([\\])$/) { + $progs.=" " . $3; + if($4) { $invar = 1; } + } else { $invar = 0; } +} + +foreach(split(/bin\//, $progs)) { + next if($_ eq " "); + s/\@EXEEXT\@//g; + s/ //g; + + + $f = $_; + + $found = 0; + + for($i = 0; $i < 9; $i++) { + if(-e "manpages/$f.$i.xml") { $found = 1; } + } + + if(!$found) { + print "'$f' does not have a manpage\n"; + } +} diff --git a/docs-xml/scripts/indent-smb.conf.pl b/docs-xml/scripts/indent-smb.conf.pl new file mode 100755 index 0000000000..c4c87a1511 --- /dev/null +++ b/docs-xml/scripts/indent-smb.conf.pl @@ -0,0 +1,8 @@ +#!/usr/bin/perl + +while(<STDIN>) { + if(/^$/) { } + elsif(/^([ \t]*)#(.*)/) { print "#$2\n"; } + elsif(/^([ \t]*)(.*) = (.*)$/) { print "\t$2 = $3\n"; } + elsif(/^([ \t]*)\[(.*)\]([ \t]*)$/) { print "\n[$2]\n"; } +} diff --git a/docs-xml/scripts/neatquotes.pl b/docs-xml/scripts/neatquotes.pl new file mode 100755 index 0000000000..9d5aa6e9e3 --- /dev/null +++ b/docs-xml/scripts/neatquotes.pl @@ -0,0 +1,12 @@ +#!/usr/bin/perl + +my $inprog = 0; + +while(<STDIN>) { + if(/<(programlisting|screen)>/) { $inprog = 1; } + if(/<\/(programlisting|screen)>/) { $inprog = 0; } + if(not /="(.*)"/ and not $inprog) { + s/"(.*?)"/<quote>\1<\/quote>/g; + } + print $_; +} |