1#!/bin/sh
2
3# manlint - lint manual page 'roff source, stop list in mantools/manlint.stop
4
5# example: mantools/manlint man/man?/*
6
7grep -n . "$@" | sed -n '
8    s/$/ /
9    # Non-bold manual page references
10    /[a-z][_a-z0-9_]*([0-9])/{
11	p
12	d
13    }
14    # Command examples not enclosed in quotes
15    /[^"]\\fB[a-z][_a-z0-9-]* /{
16	p
17	d
18    }
19    # Missing manual page sections
20    /\\fBanvil\\fR[^-(]/{
21	p
22	d
23    }
24    /\\fBbounce\\fR[^-(]/{
25        p
26        d
27    }
28    /\\fBcleanup\\fR[^-(]/{
29        p
30        d
31    }
32    /\\fBdiscard\\fR[^-(]/{
33        p
34        d
35    }
36    /\\fBerror\\fR[^-(]/{
37        p
38        d
39    }
40    /\\fBflush\\fR[^-(]/{
41        p
42        d
43    }
44    /\\fBlmtp\\fR[^-(]/{
45        p
46        d
47    }
48    /\\fBlocal\\fR[^-(]/{
49        p
50        d
51    }
52    /\\fBmaster\\fR[^-(]/{
53        p
54        d
55    }
56    /\\fBoqmgr\\fR[^-(]/{
57        p
58        d
59    }
60    /\\fBpickup\\fR[^-(]/{
61        p
62        d
63    }
64    /\\fBpipe\\fR[^-(]/{
65        p
66        d
67    }
68    /\\fBpostalias\\fR[^-(]/{
69        p
70        d
71    }
72    /\\fBpostcat\\fR[^-(]/{
73        p
74        d
75    }
76    /\\fBpostconf\\fR[^-(]/{
77        p
78        d
79    }
80    /\\fBpostdrop\\fR[^-(]/{
81        p
82        d
83    }
84    /\\fBpostfix\\fR[^-(]/{
85        p
86        d
87    }
88    /\\fBpostkick\\fR[^-(]/{
89        p
90        d
91    }
92    /\\fBpostlock\\fR[^-(]/{
93        p
94        d
95    }
96    /\\fBpostlog\\fR[^-(]/{
97        p
98        d
99    }
100    /\\fBpostmap\\fR[^-(]/{
101        p
102        d
103    }
104    /\\fBpostqueue\\fR[^-(]/{
105        p
106        d
107    }
108    /\\fBpostsuper\\fR[^-(]/{
109        p
110        d
111    }
112    /\\fBproxymap\\fR[^-(]/{
113        p
114        d
115    }
116    /\\fBqmgr\\fR[^-(]/{
117        p
118        d
119    }
120    /\\fBqmqpd\\fR[^-(]/{
121        p
122        d
123    }
124    /\\fBscache\\fR[^-(]/{
125        p
126        d
127    }
128    /\\fBsendmail\\fR[^-(]/{
129        p
130        d
131    }
132    /\\fBshowq\\fR[^-(]/{
133        p
134        d
135    }
136    /\\fBsmtp\\fR[^-(]/{
137        p
138        d
139    }
140    /\\fBsmtpd\\fR[^-(]/{
141        p
142        d
143    }
144    /\\fBspawn\\fR[^-(]/{
145        p
146        d
147    }
148    /\\fBtlsmgr\\fR[^-(]/{
149        p
150        d
151    }
152    /\\fBtrivial-rewrite\\fR[^-(]/{
153        p
154        d
155    }
156    /\\fBverify\\fR[^-(]/{
157        p
158        d
159    }
160    /\\fBvirtual\\fR[^-(]/{
161        p
162        d
163    }
164' | egrep -v ':[a-z][_a-z0-9-]*\([0-9]\),' |
165    fgrep -vf mantools/manlint.stop
166