| |
| |
| |
| |
|
|
| 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 |
|
|