1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-21 03:12:48 +02:00
Files
coreutils/man/dummy-man
Bernhard Voelker b3578fc9ff maint: avoid patching help2man
Commit cde1ea0e separated the coreutils-specific patches from help2man.
Most changes had been made to accommodate to the coreutils style guide,
i.e., to avoid syntax-check failures like sc_long_lines.
Yet 2 changes had to be put into the patch help2man.diff.
But this added the dependency to patch(1) in distribution builds.
Incidentally, the 2 remaining parts of the patch can easily be
done outside of help2man.  Therefore, this commit partly reverts
the recent separation of help2man into 'help2man.in' and
'help2man.diff', and instead uses the original help2man script.

* man/help2man.in: Rename to ...
* man/help2man: ... this file.
* man/help2man.diff: Remove.
* man/local.mk (mandeps): Remove man/help2man.
(man/help2man): Remove recipe.
(.x.1): Add the --info-page option when calling help2man in order
to change the name of the texinfo manual from the default, "info PRG",
to "info coreutils 'PRG invocation'".
Furthermore, use an sed pattern to remove the sentence starting
with "For complete documentation".
* .gitignore (/man/help2man): Remove entry.
* .x-update-copyright: Replace the entries for the files
'man/help2man.diff' and 'man/help2man.in' by 'man/help2man'.
* cfg.mk (sc_long_lines): Instead of 'man/help2man.in', exempt
'man/help2man' from this test.
(sc_po_check): Likewise.
(sc_space_tab): Instead of 'man/help2man.diff', exempt 'man/help2man'
from this test.
(sc_trailing_blank): Likewise.
(sc_prohibit_tab_based_indentation): Instead of 'man/help2man.in' and
'man/help2man.diff', exempt 'man/help2man'.
* man/dummy-man: Recognize the option --info-page=... as no-op.
2013-09-12 08:02:22 +02:00

74 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
# Poor man's placeholder for help2man invocation on systems lacking perl;
# it generates a dummy man page stating that a proper one could not be
# generated, and redirecting the user back to either the info
# documentation or the '--help' output.
set -e; set -u
fatal_ ()
{
printf '%s: %s\n' "$0" "$*" >&2
exit 1
}
basename_ ()
{
printf '%s\n' "$1" | sed 's,.*/,,'
}
output=
source="GNU coreutils"
while test $# -gt 0; do
case $1 in
# Help2man options we recognize and handle.
--output=*) output=`expr x"$1" : x'--output=\(.*\)'`;;
--output) shift; output=$1;;
--source=*) source=`expr x"$1" : x'--source=\(.*\)'`;;
--source) shift; source=$1;;
# Recognize (as no-op) other help2man options that might be used
# in the makefile.
--include=*);;
--include) shift;;
--info-page=*);;
-*) fatal_ "invalid or unrecognized help2man option '$1'";;
--) shift; break;;
*) break;;
esac
shift
done
test $# -gt 0 || fatal_ "missing argument"
test $# -le 1 || fatal_ "too many non-option arguments"
baseout=`basename_ "$output"`
sed 's/^/WARNING: /' >&2 <<END
Cannot create proper '$baseout' man page, since perl is missing or
inadequate on this system. Creating a stub man page instead.
END
progname=`basename_ "$1"`
year=`LC_ALL=C date +%Y`
bs='\'
cat >"$output" <<END
.TH "$progname" 1 "$year" "$source" "User Commands"
.SH NAME
$progname $bs- a $source program
.SH DESCRIPTION
.B OOOPS!
Due to the lack of perl on the build system, we were
unable to create a proper manual page for
.B $progname.
For concise option descriptions, run
.IP
.B env $progname --help
.PP
The full documentation for
.B $progname
is maintained as a Texinfo manual, which should be accessible
on your system via the command
.IP
.B info coreutils $bs(aq$progname invocation$bs(aq
END