xref: /freebsd/contrib/mandoc/makewhatis.8 (revision 61d06d6bd19dafe8ea971dd43e8328fa1b473456)
1*61d06d6bSBaptiste Daroussin.\"	$Id: makewhatis.8,v 1.6 2017/05/17 22:27:12 schwarze Exp $
2*61d06d6bSBaptiste Daroussin.\"
3*61d06d6bSBaptiste Daroussin.\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
4*61d06d6bSBaptiste Daroussin.\" Copyright (c) 2011, 2012, 2014, 2017 Ingo Schwarze <schwarze@openbsd.org>
5*61d06d6bSBaptiste Daroussin.\"
6*61d06d6bSBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any
7*61d06d6bSBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above
8*61d06d6bSBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies.
9*61d06d6bSBaptiste Daroussin.\"
10*61d06d6bSBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11*61d06d6bSBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12*61d06d6bSBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13*61d06d6bSBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14*61d06d6bSBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15*61d06d6bSBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16*61d06d6bSBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17*61d06d6bSBaptiste Daroussin.\"
18*61d06d6bSBaptiste Daroussin.Dd $Mdocdate: May 17 2017 $
19*61d06d6bSBaptiste Daroussin.Dt MAKEWHATIS 8
20*61d06d6bSBaptiste Daroussin.Os
21*61d06d6bSBaptiste Daroussin.Sh NAME
22*61d06d6bSBaptiste Daroussin.Nm makewhatis
23*61d06d6bSBaptiste Daroussin.Nd index UNIX manuals
24*61d06d6bSBaptiste Daroussin.Sh SYNOPSIS
25*61d06d6bSBaptiste Daroussin.Nm
26*61d06d6bSBaptiste Daroussin.Op Fl aDnpQ
27*61d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
28*61d06d6bSBaptiste Daroussin.Op Fl C Ar file
29*61d06d6bSBaptiste Daroussin.Nm
30*61d06d6bSBaptiste Daroussin.Op Fl aDnpQ
31*61d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
32*61d06d6bSBaptiste Daroussin.Ar dir ...
33*61d06d6bSBaptiste Daroussin.Nm
34*61d06d6bSBaptiste Daroussin.Op Fl DnpQ
35*61d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
36*61d06d6bSBaptiste Daroussin.Fl d Ar dir
37*61d06d6bSBaptiste Daroussin.Op Ar
38*61d06d6bSBaptiste Daroussin.Nm
39*61d06d6bSBaptiste Daroussin.Op Fl Dnp
40*61d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
41*61d06d6bSBaptiste Daroussin.Fl u Ar dir
42*61d06d6bSBaptiste Daroussin.Op Ar
43*61d06d6bSBaptiste Daroussin.Nm
44*61d06d6bSBaptiste Daroussin.Op Fl DQ
45*61d06d6bSBaptiste Daroussin.Fl t Ar
46*61d06d6bSBaptiste Daroussin.Sh DESCRIPTION
47*61d06d6bSBaptiste DaroussinThe
48*61d06d6bSBaptiste Daroussin.Nm
49*61d06d6bSBaptiste Daroussinutility extracts keywords from
50*61d06d6bSBaptiste Daroussin.Ux
51*61d06d6bSBaptiste Daroussinmanuals and indexes them in a database for fast retrieval by
52*61d06d6bSBaptiste Daroussin.Xr apropos 1 ,
53*61d06d6bSBaptiste Daroussin.Xr whatis 1 ,
54*61d06d6bSBaptiste Daroussinand
55*61d06d6bSBaptiste Daroussin.Xr man 1 Ns 's
56*61d06d6bSBaptiste Daroussin.Fl k
57*61d06d6bSBaptiste Daroussinoption.
58*61d06d6bSBaptiste Daroussin.Pp
59*61d06d6bSBaptiste DaroussinBy default,
60*61d06d6bSBaptiste Daroussin.Nm
61*61d06d6bSBaptiste Daroussincreates a database in each
62*61d06d6bSBaptiste Daroussin.Ar dir
63*61d06d6bSBaptiste Daroussinusing the files
64*61d06d6bSBaptiste Daroussin.Sm off
65*61d06d6bSBaptiste Daroussin.Sy man Ar section Li /
66*61d06d6bSBaptiste Daroussin.Op Ar arch Li /
67*61d06d6bSBaptiste Daroussin.Ar title . section
68*61d06d6bSBaptiste Daroussin.Sm on
69*61d06d6bSBaptiste Daroussinand
70*61d06d6bSBaptiste Daroussin.Sm off
71*61d06d6bSBaptiste Daroussin.Sy cat Ar section Li /
72*61d06d6bSBaptiste Daroussin.Op Ar arch Li /
73*61d06d6bSBaptiste Daroussin.Ar title . Sy 0
74*61d06d6bSBaptiste Daroussin.Sm on
75*61d06d6bSBaptiste Daroussinin that directory.
76*61d06d6bSBaptiste DaroussinExisting databases are replaced.
77*61d06d6bSBaptiste DaroussinIf a directory contains no manual pages, no database is created in that
78*61d06d6bSBaptiste Daroussindirectory.
79*61d06d6bSBaptiste DaroussinIf
80*61d06d6bSBaptiste Daroussin.Ar dir
81*61d06d6bSBaptiste Daroussinis not provided,
82*61d06d6bSBaptiste Daroussin.Nm
83*61d06d6bSBaptiste Daroussinuses the default paths stipulated by
84*61d06d6bSBaptiste Daroussin.Xr man.conf 5 .
85*61d06d6bSBaptiste Daroussin.Pp
86*61d06d6bSBaptiste DaroussinThe arguments are as follows:
87*61d06d6bSBaptiste Daroussin.Bl -tag -width "-C file"
88*61d06d6bSBaptiste Daroussin.It Fl a
89*61d06d6bSBaptiste DaroussinUse all directories and files found below
90*61d06d6bSBaptiste Daroussin.Ar dir ... .
91*61d06d6bSBaptiste Daroussin.It Fl C Ar file
92*61d06d6bSBaptiste DaroussinSpecify an alternative configuration
93*61d06d6bSBaptiste Daroussin.Ar file
94*61d06d6bSBaptiste Daroussinin
95*61d06d6bSBaptiste Daroussin.Xr man.conf 5
96*61d06d6bSBaptiste Daroussinformat.
97*61d06d6bSBaptiste Daroussin.It Fl D
98*61d06d6bSBaptiste DaroussinDisplay all files added or removed to the index.
99*61d06d6bSBaptiste DaroussinWith a second
100*61d06d6bSBaptiste Daroussin.Fl D ,
101*61d06d6bSBaptiste Daroussinalso show all keywords added for each file.
102*61d06d6bSBaptiste Daroussin.It Fl d Ar dir
103*61d06d6bSBaptiste DaroussinMerge (remove and re-add)
104*61d06d6bSBaptiste Daroussin.Ar
105*61d06d6bSBaptiste Daroussinto the database in
106*61d06d6bSBaptiste Daroussin.Ar dir .
107*61d06d6bSBaptiste Daroussin.It Fl n
108*61d06d6bSBaptiste DaroussinDo not create or modify any database; scan and parse only,
109*61d06d6bSBaptiste Daroussinand print manual page names and descriptions to standard output.
110*61d06d6bSBaptiste Daroussin.It Fl p
111*61d06d6bSBaptiste DaroussinPrint warnings about potential problems with manual pages
112*61d06d6bSBaptiste Daroussinto the standard error output.
113*61d06d6bSBaptiste Daroussin.It Fl Q
114*61d06d6bSBaptiste DaroussinQuickly build reduced-size databases
115*61d06d6bSBaptiste Daroussinby reading only the NAME sections of manuals.
116*61d06d6bSBaptiste DaroussinThe resulting databases will usually contain names and descriptions only.
117*61d06d6bSBaptiste Daroussin.It Fl T Cm utf8
118*61d06d6bSBaptiste DaroussinUse UTF-8 encoding instead of ASCII for strings stored in the databases.
119*61d06d6bSBaptiste Daroussin.It Fl t Ar
120*61d06d6bSBaptiste DaroussinCheck the given
121*61d06d6bSBaptiste Daroussin.Ar files
122*61d06d6bSBaptiste Daroussinfor potential problems.
123*61d06d6bSBaptiste DaroussinImplies
124*61d06d6bSBaptiste Daroussin.Fl a ,
125*61d06d6bSBaptiste Daroussin.Fl n ,
126*61d06d6bSBaptiste Daroussinand
127*61d06d6bSBaptiste Daroussin.Fl p .
128*61d06d6bSBaptiste DaroussinAll diagnostic messages are printed to the standard output;
129*61d06d6bSBaptiste Daroussinthe standard error output is not used.
130*61d06d6bSBaptiste Daroussin.It Fl u Ar dir
131*61d06d6bSBaptiste DaroussinRemove
132*61d06d6bSBaptiste Daroussin.Ar
133*61d06d6bSBaptiste Daroussinfrom the database in
134*61d06d6bSBaptiste Daroussin.Ar dir .
135*61d06d6bSBaptiste DaroussinIf that causes the database to become empty, also delete the database file.
136*61d06d6bSBaptiste Daroussin.El
137*61d06d6bSBaptiste Daroussin.Pp
138*61d06d6bSBaptiste DaroussinIf fatal parse errors are encountered while parsing, the offending file
139*61d06d6bSBaptiste Daroussinis printed to stderr, omitted from the index, and the parse continues
140*61d06d6bSBaptiste Daroussinwith the next input file.
141*61d06d6bSBaptiste Daroussin.Sh ENVIRONMENT
142*61d06d6bSBaptiste Daroussin.Bl -tag -width MANPATH
143*61d06d6bSBaptiste Daroussin.It Ev MANPATH
144*61d06d6bSBaptiste DaroussinA colon-separated list of directories to create databases in.
145*61d06d6bSBaptiste DaroussinIgnored if a
146*61d06d6bSBaptiste Daroussin.Ar dir
147*61d06d6bSBaptiste Daroussinargument or the
148*61d06d6bSBaptiste Daroussin.Fl t
149*61d06d6bSBaptiste Daroussinoption is specified.
150*61d06d6bSBaptiste Daroussin.El
151*61d06d6bSBaptiste Daroussin.Sh FILES
152*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds
153*61d06d6bSBaptiste Daroussin.It Pa mandoc.db
154*61d06d6bSBaptiste DaroussinA database of manpages relative to the directory of the file.
155*61d06d6bSBaptiste DaroussinThis file is portable across architectures and systems, so long as the
156*61d06d6bSBaptiste Daroussinmanpage hierarchy it indexes does not change.
157*61d06d6bSBaptiste Daroussin.It Pa /etc/man.conf
158*61d06d6bSBaptiste DaroussinThe default
159*61d06d6bSBaptiste Daroussin.Xr man 1
160*61d06d6bSBaptiste Daroussinconfiguration file.
161*61d06d6bSBaptiste Daroussin.El
162*61d06d6bSBaptiste Daroussin.Sh EXIT STATUS
163*61d06d6bSBaptiste DaroussinThe
164*61d06d6bSBaptiste Daroussin.Nm
165*61d06d6bSBaptiste Daroussinutility exits with one of the following values:
166*61d06d6bSBaptiste Daroussin.Pp
167*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds -compact
168*61d06d6bSBaptiste Daroussin.It 0
169*61d06d6bSBaptiste DaroussinNo errors occurred.
170*61d06d6bSBaptiste Daroussin.It 5
171*61d06d6bSBaptiste DaroussinInvalid command line arguments were specified.
172*61d06d6bSBaptiste DaroussinNo input files have been read.
173*61d06d6bSBaptiste Daroussin.It 6
174*61d06d6bSBaptiste DaroussinAn operating system error occurred, for example memory exhaustion or an
175*61d06d6bSBaptiste Daroussinerror accessing input files.
176*61d06d6bSBaptiste DaroussinSuch errors cause
177*61d06d6bSBaptiste Daroussin.Nm
178*61d06d6bSBaptiste Daroussinto exit at once, possibly in the middle of parsing or formatting a file.
179*61d06d6bSBaptiste DaroussinThe output databases are corrupt and should be removed.
180*61d06d6bSBaptiste Daroussin.El
181*61d06d6bSBaptiste Daroussin.Sh SEE ALSO
182*61d06d6bSBaptiste Daroussin.Xr apropos 1 ,
183*61d06d6bSBaptiste Daroussin.Xr man 1 ,
184*61d06d6bSBaptiste Daroussin.Xr whatis 1 ,
185*61d06d6bSBaptiste Daroussin.Xr man.conf 5
186*61d06d6bSBaptiste Daroussin.Sh HISTORY
187*61d06d6bSBaptiste DaroussinA
188*61d06d6bSBaptiste Daroussin.Nm
189*61d06d6bSBaptiste Daroussinutility first appeared in
190*61d06d6bSBaptiste Daroussin.Bx 2 .
191*61d06d6bSBaptiste DaroussinIt was rewritten in
192*61d06d6bSBaptiste Daroussin.Xr perl 1
193*61d06d6bSBaptiste Daroussinfor
194*61d06d6bSBaptiste Daroussin.Ox 2.7
195*61d06d6bSBaptiste Daroussinand in C for
196*61d06d6bSBaptiste Daroussin.Ox 5.6 .
197*61d06d6bSBaptiste Daroussin.Pp
198*61d06d6bSBaptiste DaroussinThe
199*61d06d6bSBaptiste Daroussin.Ar dir
200*61d06d6bSBaptiste Daroussinargument first appeared in
201*61d06d6bSBaptiste Daroussin.Nx 1.0 ;
202*61d06d6bSBaptiste Daroussinthe options
203*61d06d6bSBaptiste Daroussin.Fl dpt
204*61d06d6bSBaptiste Daroussinin
205*61d06d6bSBaptiste Daroussin.Ox 2.7 ;
206*61d06d6bSBaptiste Daroussinthe option
207*61d06d6bSBaptiste Daroussin.Fl u
208*61d06d6bSBaptiste Daroussinin
209*61d06d6bSBaptiste Daroussin.Ox 3.4 ;
210*61d06d6bSBaptiste Daroussinand the options
211*61d06d6bSBaptiste Daroussin.Fl aCDnQT
212*61d06d6bSBaptiste Daroussinin
213*61d06d6bSBaptiste Daroussin.Ox 5.6 .
214*61d06d6bSBaptiste Daroussin.Sh AUTHORS
215*61d06d6bSBaptiste Daroussin.An -nosplit
216*61d06d6bSBaptiste Daroussin.An Bill Joy
217*61d06d6bSBaptiste Daroussinwrote the original
218*61d06d6bSBaptiste Daroussin.Bx
219*61d06d6bSBaptiste Daroussin.Nm
220*61d06d6bSBaptiste Daroussinin February 1979,
221*61d06d6bSBaptiste Daroussin.An Marc Espie
222*61d06d6bSBaptiste Daroussinstarted the Perl version in 2000,
223*61d06d6bSBaptiste Daroussinand the current version of
224*61d06d6bSBaptiste Daroussin.Nm
225*61d06d6bSBaptiste Daroussinwas written by
226*61d06d6bSBaptiste Daroussin.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv
227*61d06d6bSBaptiste Daroussinand
228*61d06d6bSBaptiste Daroussin.An Ingo Schwarze Aq Mt schwarze@openbsd.org .
229