summaryrefslogtreecommitdiff
path: root/docs-xml/scripts
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2012-09-26 02:37:01 +0200
committerJelmer Vernooij <jelmer@samba.org>2012-09-26 22:12:07 +0200
commit4192960a9ee692f7c7c1aa3d4393518910ec7542 (patch)
tree3164485fd7052ce99829332ee8df55f7700a5793 /docs-xml/scripts
parentf2b2c1028bcb5da2292c543e4419d258ec3d6b46 (diff)
downloadsamba-4192960a9ee692f7c7c1aa3d4393518910ec7542.tar.gz
samba-4192960a9ee692f7c7c1aa3d4393518910ec7542.tar.bz2
samba-4192960a9ee692f7c7c1aa3d4393518910ec7542.zip
find_missing_doc: Convert to python.
Diffstat (limited to 'docs-xml/scripts')
-rwxr-xr-xdocs-xml/scripts/find_missing_doc119
-rwxr-xr-xdocs-xml/scripts/find_missing_manpages43
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;