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