File: check-table-proto

package info (click to toggle)
postfix 3.10.6-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 27,968 kB
  • sloc: ansic: 134,721; makefile: 17,984; sh: 6,966; perl: 2,796; python: 1,448; awk: 158
file content (32 lines) | stat: -rwxr-xr-x 1,073 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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