Module Name:    src
Committed By:   lukem
Date:           Sun Aug 14 08:51:41 UTC 2022

Modified Files:
        src: build.sh

Log Message:
build.sh: improve help versus usage

Rework help / usage semantics:
- send help to stdout, exit 0.
- send usage to stderr, exit 1.


To generate a diff of this commit:
cvs rdiff -u -r1.361 -r1.362 src/build.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/build.sh
diff -u src/build.sh:1.361 src/build.sh:1.362
--- src/build.sh:1.361	Fri Dec 31 15:43:35 2021
+++ src/build.sh	Sun Aug 14 08:51:41 2022
@@ -1,7 +1,7 @@
 #! /usr/bin/env sh
-#	$NetBSD: build.sh,v 1.361 2021/12/31 15:43:35 christos Exp $
+#	$NetBSD: build.sh,v 1.362 2022/08/14 08:51:41 lukem Exp $
 #
-# Copyright (c) 2001-2011 The NetBSD Foundation, Inc.
+# Copyright (c) 2001-2022 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
 # This code is derived from software contributed to The NetBSD Foundation
@@ -360,6 +360,7 @@ warning()
 # Find a program in the PATH, and print the result.  If not found,
 # print a default.  If $2 is defined (even if it is an empty string),
 # then that is the default; otherwise, $1 is used as the default.
+#
 find_in_PATH()
 {
 	local prog="$1"
@@ -379,6 +380,7 @@ find_in_PATH()
 
 # Try to find a working POSIX shell, and set HOST_SH to refer to it.
 # Assumes that uname_s, uname_m, and PWD have been set.
+#
 set_HOST_SH()
 {
 	# Even if ${HOST_SH} is already defined, we still do the
@@ -948,6 +950,7 @@ setmakeenv()
 	eval "$1='$2'; export $1"
 	makeenv="${makeenv} $1"
 }
+
 safe_setmakeenv()
 {
 	case "$1" in
@@ -966,6 +969,7 @@ unsetmakeenv()
 	eval "unset $1"
 	makeenv="${makeenv} $1"
 }
+
 safe_unsetmakeenv()
 {
 	case "$1" in
@@ -980,6 +984,7 @@ safe_unsetmakeenv()
 
 # Given a variable name in $1, modify the variable in place as follows:
 # For each space-separated word in the variable, call resolvepath.
+#
 resolvepaths()
 {
 	local var="$1"
@@ -997,6 +1002,7 @@ resolvepaths()
 # Given a variable name in $1, modify the variable in place as follows:
 # Convert possibly-relative path to absolute path by prepending
 # ${TOP} if necessary.  Also delete trailing "/", if any.
+#
 resolvepath()
 {
 	local var="$1"
@@ -1015,12 +1021,10 @@ resolvepath()
 	eval ${var}=\"\${val}\"
 }
 
-usage()
+# Display help to stdout.
+#
+help()
 {
-	if [ -n "$*" ]; then
-		echo ""
-		echo "${progname}: $*"
-	fi
 	cat <<_usage_
 
 Usage: ${progname} [-EhnoPRrUuxy] [-a arch] [-B buildid] [-C cdextras]
@@ -1130,6 +1134,17 @@ Usage: ${progname} [-EhnoPRrUuxy] [-a ar
     -Z var         Unset ("zap") variable \`var'.
 
 _usage_
+}
+
+# Display optional error message, help to stderr, and exit 1.
+#
+usage()
+{
+	if [ -n "$*" ]; then
+		echo ""
+		echo "${progname}: $*"
+	fi
+	help 1>&2
 	exit 1
 }
 
@@ -1349,7 +1364,8 @@ parseoptions()
 			;;
 
 		-'?'|-h)
-			usage
+			help
+			exit 0
 			;;
 
 		esac
@@ -1365,7 +1381,8 @@ parseoptions()
 		case "${op}" in
 
 		help)
-			usage
+			help
+			exit 0
 			;;
 
 		list-arch)
@@ -1974,7 +1991,7 @@ createmakewrapper()
 	eval cat <<EOF ${makewrapout}
 #! ${HOST_SH}
 # Set proper variables to allow easy "make" building of a NetBSD subtree.
-# Generated from:  \$NetBSD: build.sh,v 1.361 2021/12/31 15:43:35 christos Exp $
+# Generated from:  \$NetBSD: build.sh,v 1.362 2022/08/14 08:51:41 lukem Exp $
 # with these arguments: ${_args}
 #
 

Reply via email to