util/board_status/board_status.sh: improve getopt detection and usage on
non-linux OSes

Signed-off-by: Idwer Vollering <vidwer@gmail.com>
Change-Id: Iba50d8a8609eda974f12b0d9802e04d7371aed5b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/49307
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/util/board_status/board_status.sh b/util/board_status/board_status.sh
index 0054421..5235a28 100755
--- a/util/board_status/board_status.sh
+++ b/util/board_status/board_status.sh
@@ -212,7 +212,21 @@
 "
 }
 
-getopt -T
+case $(uname) in
+	FreeBSD)
+		if [ ! -x /usr/local/bin/getopt ]; then
+			echo "Please install getopt, or build and install misc/getopt from ports."
+			exit $EXIT_FAILURE
+		else
+			GETOPT=/usr/local/bin/getopt
+		fi
+		;;
+	*)
+	GETOPT=/usr/bin/getopt
+	;;
+esac
+
+$GETOPT -T
 if [ $? -ne 4 ]; then
 	echo "GNU-compatible getopt(1) required."
 	exit $EXIT_FAILURE
@@ -222,7 +236,7 @@
 LONGOPTS="${LONGOPTS},serial-device:,serial-speed:"
 LONGOPTS="${LONGOPTS},ssh-port:"
 
-ARGS=$(getopt -o c:n:Chi:r:s:S:u -l "$LONGOPTS" -n "$0" -- "$@");
+ARGS=$($GETOPT -o c:n:Chi:r:s:S:u -l "$LONGOPTS" -n "$0" -- "$@");
 if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
 eval set -- "$ARGS"
 while true ; do