summaryrefslogtreecommitdiffstats
path: root/mantools/check-table-proto
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 19:59:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 19:59:03 +0000
commita848231ae0f346dc7cc000973fbeb65b0894ee92 (patch)
tree44b60b367c86723cc78383ef247885d72b388afe /mantools/check-table-proto
parentInitial commit. (diff)
downloadpostfix-a848231ae0f346dc7cc000973fbeb65b0894ee92.tar.xz
postfix-a848231ae0f346dc7cc000973fbeb65b0894ee92.zip
Adding upstream version 3.8.5.upstream/3.8.5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mantools/check-table-proto')
-rwxr-xr-xmantools/check-table-proto32
1 files changed, 32 insertions, 0 deletions
diff --git a/mantools/check-table-proto b/mantools/check-table-proto
new file mode 100755
index 0000000..8fcb951
--- /dev/null
+++ b/mantools/check-table-proto
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# Reports database configuration settings without proto/xxx_table documentation
+
+LANG=C; export LANG
+LC_ALL=C; export LC_ALL
+
+trap 'rm -f from-source.tmp from-doc.tmp 2>/dev/null' 0 1 2 3 15
+
+# For each database type, extract parameter names from its postconf
+# include file, and compare the result against a list of names from
+# the corresponding proto/xxx_table file.
+
+# Force a failure if the pcf*suffixes.h files do not exist. Avoid using
+# bash-specific shell features.
+for map in `(ls src/postconf/pcf*suffixes.h || kill $$) |
+ sed 's;src/postconf/pcf_\(.*\)_suffixes.h$;\1;'`
+do
+ # Extract parameter names from source code.
+ tr -cd '[A-zA-z_0-9\12]' < src/postconf/pcf_${map}_suffixes.h |
+ sort > from-source.tmp
+ # Extract parameter names from documentation.
+ sed -n '/^# *\.IP *"*\\fB\([a-zA-Z_0-9][a-zA-Z_0-9]*\).*/{
+ s//\1/
+ p
+ }' proto/${map}_table | sort > from-doc.tmp
+ cmp -s from-source.tmp from-doc.tmp || {
+ echo Settings in global/dict_${map}.c and proto/${map}_table differ.
+ diff from-source.tmp from-doc.tmp
+ }
+done
+