diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2012-09-26 02:37:01 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2012-09-26 22:12:07 +0200 |
commit | 4192960a9ee692f7c7c1aa3d4393518910ec7542 (patch) | |
tree | 3164485fd7052ce99829332ee8df55f7700a5793 /docs-xml/scripts | |
parent | f2b2c1028bcb5da2292c543e4419d258ec3d6b46 (diff) | |
download | samba-4192960a9ee692f7c7c1aa3d4393518910ec7542.tar.gz samba-4192960a9ee692f7c7c1aa3d4393518910ec7542.tar.bz2 samba-4192960a9ee692f7c7c1aa3d4393518910ec7542.zip |
find_missing_doc: Convert to python.
Diffstat (limited to 'docs-xml/scripts')
-rwxr-xr-x | docs-xml/scripts/find_missing_doc | 119 | ||||
-rwxr-xr-x | docs-xml/scripts/find_missing_manpages | 43 |
2 files changed, 100 insertions, 62 deletions
diff --git a/docs-xml/scripts/find_missing_doc b/docs-xml/scripts/find_missing_doc index 6ce547be3e..d75ef8dcc7 100755 --- a/docs-xml/scripts/find_missing_doc +++ b/docs-xml/scripts/find_missing_doc @@ -1,62 +1,83 @@ -#!/usr/bin/perl +#!/usr/bin/python -my %doc; +# Copyright (C) 2007,2012 Jelmer Vernooij <jelmer@samba.org> -$topdir = (shift @ARGV) or $topdir = "."; +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# -################################################## -# Reading links from manpage - -$curdir = $ENV{PWD}; - -chdir("smbdotconf"); +import optparse +import os +import re -open(IN,"xsltproc --xinclude --param smb.context ALL generate-context.xsl parameters.all.xml|"); +parser = optparse.OptionParser("source_dir") -while(<IN>) { - if( /<samba:parameter .*?name="([^"]*?)"/g ){ - my $name = $1; - $name =~ s/ //g; - $doc{$name} = "NOTFOUND"; - } -} +(opts, args) = parser.parse_args() -close(IN); +if len(args) == 1: + topdir = args[0] +else: + topdir = "." -chdir($curdir); - -################################################# -# Reading entries from source code - - -open(SOURCE,"$topdir/lib/param/param_table.c") or die("Can't open $topdir/lib/param/param_table.c: $!"); +# Reading links from manpage -while ($ln = <SOURCE>) { - last if $ln =~ m/^static\ struct\ parm_struct\ parm_table.*/; -} #burn through the preceding lines +curdir = os.getcwd() +doc = {} -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*\.label\s*=\s*\"(.*)\".*/; +os.chdir("smbdotconf"); - my $name = $1; - $name =~ s/ //g; +f = os.popen("xsltproc --xinclude --param smb.context ALL generate-context.xsl parameters.all.xml", "r") +try: + for l in f.readlines(): + m = re.match('<samba:parameter .*?name="([^"]*?)"', l) + if m: + name = m.group(1).replace(" ", "") + doc[name] = False +finally: + f.close() - if($doc{lc($name)}) { - $doc{lc($name)} = "FOUND"; - } else { - print "'$name' is not documented\n"; - } -} -close SOURCE; +os.chdir(curdir) -################################################## -# Trying to find missing references +# Reading entries from source code -foreach (keys %doc) { - if($doc{$_} cmp "FOUND") { - print "'$_' is documented but is not a configuration option\n"; - } -} +f = open(os.path.join(topdir, "lib/param/param_table.c"), "r") + +# burn through the preceding lines +while True: + l = f.readline() + if l.startswith("static struct parm_struct parm_table"): + break + +for l in f.readlines(): + if re.match("^\s*\}\;\s*$", l): + break + # pull in the param names only + if re.match(".*P_SEPARATOR.*", l): + continue + m = re.match("\s*\.label\s*=\s*\"(.*)\".*", l) + if not m: + continue + + name = m.group(1) + name = name.replace(" ", "") + + if name.lower() in doc: + doc[name.lower()] = True + else: + print "'%s' is not documented" % name +f.close() + +# Try to find missing references +for key in doc.keys(): + if doc[key] == "FOUND": + print "'$_' is documented but is not a configuration option" diff --git a/docs-xml/scripts/find_missing_manpages b/docs-xml/scripts/find_missing_manpages index a0a19af23f..baa580990f 100755 --- a/docs-xml/scripts/find_missing_manpages +++ b/docs-xml/scripts/find_missing_manpages @@ -1,4 +1,19 @@ #!/usr/bin/python +# Copyright (C) 2007,2012 Jelmer Vernooij <jelmer@samba.org> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# import optparse import os @@ -8,7 +23,7 @@ parser = optparse.OptionParser("source_dir") (opts, args) = parser.parse_args() -invar = 0 +invar = False if len(args) == 1: topdir = args[0] @@ -18,19 +33,21 @@ else: progs = [] f = open(os.path.join(topdir, "Makefile.in"), "r") - -for l in f.readlines(): - l = l.strip() - if invar: - invar = (l[-1] == "\\") - progs.extend(l.rstrip("\\").split(" ")) - else: - m = re.match("^([^ ]*)_PROGS([0-9]*) = (.*?)([\\\\])$", l) - if m: - progs.extend(m.group(3).split(" ")) - invar = (m.group(4) == "\\") +try: + for l in f.readlines(): + l = l.strip() + if invar: + invar = (l[-1] == "\\") + progs.extend(l.rstrip("\\").split(" ")) else: - invar = False + m = re.match("^([^ ]*)_PROGS([0-9]*) = (.*?)([\\\\])$", l) + if m: + progs.extend(m.group(3).split(" ")) + invar = (m.group(4) == "\\") + else: + invar = False +finally: + f.close() #$progs =~ s/@([^@]+)@//g; #$progs =~ s/\$\(.*?\)//g; |