|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;; |
|
|
--include=*) include=`expr x"$1" : x'--include=\(.*\)'`;; |
|
|
--include) shift; include=$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. |
|
|
--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" |
|
|
|
|
|
dist_man=$(printf '%s\n' "$include" | sed 's/\.x$/.1/') |
|
|
test -f "$dist_man" && cp "$dist_man" "$output" && exit || : |
|
|
|
|
|
baseout=`basename_ "$output"` |
|
|
sed 's/^/WARNING: /' >&2 <<END |
|
|
Did not generate or find default '$baseout' man page. |
|
|
Creating a stub man page instead. |
|
|
END |
|
|
|
|
|
progname=`basename_ "$1"` |
|
|
bs='\' |
|
|
|
|
|
cat >"$output" <<END |
|
|
.TH "$progname" 1 "$source" "User Commands" |
|
|
.SH NAME |
|
|
$progname $bs- a $source program |
|
|
.SH DESCRIPTION |
|
|
.B OOPS! |
|
|
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 $bs(aq(coreutils) $progname invocation$bs(aq |
|
|
END |
|
|
|