CATMAN(8) | System Manager's Manual | CATMAN(8) |
catman
— format
all manual pages below a directory
catman |
[-I
os =name]
[-T output]
srcdir dstdir |
The catman
utility assumes that all files
below srcdir are manual pages in
mdoc(7) and
man(7) format and formats all of
them, storing the formatted versions in the same relative paths below
dstdir. Subdirectories of dstdir
are created as needed. Existing files are not explicitly deleted, but
possibly overwritten.
The options are as follows:
Since this version avoids
fork(2) and
exec(3) overhead and
uses the much faster mandoc parsers and formatters rather
than
groff,
it may be about one order of magnitude faster than other
catman
implementations.
The catman
utility exits 0 on
success, and >0 if an error occurs.
Possible errors include:
Except for memory exhaustion and similar system-level failures,
failures while trying to open, read, parse, or format individual manual
pages, to save individual formatted files to the file system, or even to
create directories do not cause catman
to return an
error exit status. In such cases, catman
will simply
continue with the next file or subdirectory.
A catman
utility first appeared in
FreeBSD 1.0. Other, incompatible implementations
appeared in NetBSD 1.0 and in
man-db 2.2.
This version appeared in version 1.14.1 of the mandoc toolkit.
The first catman
implementation was a
short shell script by Christoph Robitschko in July
1993.
The NetBSD implementations were written by J. T. Conklin <jtc@netbsd.org> in 1993, Christian E. Hopps <chopps@netbsd.org> in 1994, and Dante Profeta <dante@netbsd.org> in 1999; the man-db implementation by Graeme W. Wilford in 1994; and the FreeBSD implementations by Wolfram Schneider <wosch@freebsd.org> in 1995 and John Rochester <john@jrochester.org> in 2002.
The concept of the present version was designed and implemented by Michael Stapelberg <stapelberg@debian.org> in 2017. Option and argument handling and directory iteration was added by Ingo Schwarze <schwarze@openbsd.org>.
All versions of catman
are incompatible
with each other because each caters to the needs of a specific operating
system, for example regarding directory structures and file naming
conventions.
This version is more flexible than the others in so far as it does not assume any particular directory structure or naming convention. That flexibility comes at the price of not being able to change the names and relative paths of the source files when reusing them to store the formatted files, of not supporting any configuration file formats or environment variables, and of being unable to scan for and remove junk files in dstdir.
Currently, catman
always reformats each
page, even if the formatted version is newer than the source version.
March 18, 2017 | OpenBSD 6.7 |