[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#295328: general: Help messages to stderr should be banned



On Tue, 15 Feb 2005, Frank Küster wrote:

> "Francesco P. Lovergine" <frankie@debian.org> schrieb:
>
> > On Tue, Feb 15, 2005 at 07:38:08AM -0600, John Hasler wrote:
> >> Francesco P. Lovergine writes:
> >> > It depends on programs, sometimes the same usage function is used for
> >> > either --help or invalid options.
> >>
> >> Sure, but the output should still be directed correctly.
> >
> > Quite difficult if the function is the same. In both cases it uses stderr.
>
> #!/bin/sh
>
> usage(){
>   if [ "$1" = "STDERR" ]; then
>     EXITCODE=1
>     exec >&2;
>   else
>       EXITCODE=0
>   fi
>   echo "bla..."
>   exit $EXITCODE
> }
>
> case "$1" in
>      --help|-h|-help)
>        usage;;
>      --foo)
>       ...
>      *)
>        usage STDERR;;
> esac
>
> Translation to Perl, Python, C, whatever, and to multiple arguments is
> left to the reader as an afternoon exercise.

What's with all this complexity?  Just redirect stdout to stderr when you call
the function.  Geez.

==
usage() {
	if [ $# -gt 0 ]; then
		echo "$@"
	fi
	echo foo
	echo baz
}

case "$1" in
	(-h)	usage; exit 0;;
	(*)	usage "Unknown option($1)" 1>&2; exit 1;;
esac
==



Reply to: