mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 07:20:11 +00:00
c412c75def
The pod2man tool determines a man page title (set in the .TH macro) from the input filename, unless the -n (--name) option is specified. Our AFS::ukernel man page input file is named AFS.ukernel.pod to avoid colons in the filename (since colon characters are not supported on Windows), so the generated man page contains the title "AFS.ukernel" instead of "AFS::ukernel". Use the pod2man -n (--name) option when converting section 3 man pages to override the automatic title naming. This fixes the .TH macro in the generated AFS::ukernel.3 file. Fortunately, the -n (--name) option is only needed for section 3 man pages. Specifying the pod2man -n (--name) option is simpler and less invasive than renaming pod3/AFS.ukernel.pod to pod3/lib/AFS/ukernel.pod (which would also fix the embedded title). Change-Id: I495ea2d30ce1b34698519ffa34a39362c449ba09 Reviewed-on: https://gerrit.openafs.org/15363 Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
79 lines
2.2 KiB
Bash
Executable File
79 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Generate the OpenAFS man pages from POD source. This script is normally
|
|
# invoked by regen.sh but may be run at any time to rebuild all of the man
|
|
# pages (with a newer version of pod2man than was used for the release, for
|
|
# instance).
|
|
|
|
# Exit on any error.
|
|
set -e
|
|
|
|
if [ ! -d pod1 ] ; then
|
|
echo 'generate-man must be run from the doc/man-pages directory' >&2
|
|
exit 1
|
|
fi
|
|
|
|
if pod2man pod1/afs.pod > /dev/null ; then
|
|
:
|
|
else
|
|
echo 'pod2man not found, skipping man page generation' >&2
|
|
exit 1
|
|
fi
|
|
if perl -e 'use Pod::Man 2.04' > /dev/null 2>&1 ; then
|
|
:
|
|
else
|
|
echo 'Pod::Man is older than the recommended version of 2.04 or later' >&2
|
|
echo 'Continuing with man page generation anyway' >&2
|
|
fi
|
|
|
|
# Create the directories. We generate each section into its own directory
|
|
# to make installation rules easier.
|
|
[ -d man1 ] || mkdir man1
|
|
[ -d man3 ] || mkdir man3
|
|
[ -d man5 ] || mkdir man5
|
|
[ -d man8 ] || mkdir man8
|
|
|
|
# Generate each set of man pages. For each, allow for the case of the
|
|
# directory being empty. In that case, for won't expand the wildcard, and
|
|
# we want to avoid running pod2man with a wildcard as an argument.
|
|
pod1=`ls pod1`
|
|
if [ -n "$pod1" ] ; then
|
|
cd pod1
|
|
for f in *.pod ; do
|
|
pod2man -c 'AFS Command Reference' -r 'OpenAFS' -s 1 "$f" \
|
|
> ../man1/`echo "$f" | sed 's/\.pod$//'`.1
|
|
done
|
|
cd ..
|
|
fi
|
|
pod3=`ls pod3`
|
|
if [ -n "$pod3" ] ; then
|
|
cd pod3
|
|
for f in *.pod ; do
|
|
name=`echo "$f" | sed -e 's/\.pod$//' -e 's/^AFS\./AFS::/'`
|
|
pod2man -c 'AFS Library Reference' -r 'OpenAFS' -s 3 "$f" -n "$name" \
|
|
> ../man3/${name}.3
|
|
# Perl module manpages are named AFS.foo instead of AFS::foo, since
|
|
# we cannot have colons in filenames on Windows. So here, we assume
|
|
# anything with "AFS." should be "AFS::" instead.
|
|
done
|
|
cd ..
|
|
fi
|
|
pod5=`ls pod5`
|
|
if [ -n "$pod5" ] ; then
|
|
cd pod5
|
|
for f in *.pod ; do
|
|
pod2man -c 'AFS File Reference' -r 'OpenAFS' -s 5 "$f" \
|
|
> ../man5/`echo "$f" | sed 's/\.pod$//'`.5
|
|
done
|
|
cd ..
|
|
fi
|
|
pod8=`ls pod8`
|
|
if [ -n "$pod8" ] ; then
|
|
cd pod8
|
|
for f in *.pod ; do
|
|
pod2man -c 'AFS Command Reference' -r 'OpenAFS' -s 8 "$f" \
|
|
> ../man8/`echo "$f" | sed 's/\.pod$//'`.8
|
|
done
|
|
cd ..
|
|
fi
|