git: 814a49d65ace - stable/14 - fwget: add -q for quiet output

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Thu, 14 Nov 2024 01:53:53 UTC
The branch stable/14 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=814a49d65ace83b7a955cca32ff243f4abe7cd50

commit 814a49d65ace83b7a955cca32ff243f4abe7cd50
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2024-11-04 23:59:58 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2024-11-14 01:53:00 +0000

    fwget: add -q for quiet output
    
    Introduce -q to quieten other output (unless -v is also given).
    
    pkg-install(8) currently has no option to allow skipping unavail
    packages but it will just fail.
    We would realy want to try to install as much firmware found as
    possible from the installer.
    Work around this by doing one firmware package at a time.
    For that it is highly helpful to be able to query (or possibly re-query)
    all outstanding fimrware packages.
    -q together with -n only shows each package to be installed one by line.
    
    Once https://github.com/freebsd/pkg/issues/2195 will be implemented
    we could undo this part of the change and future changes to the installer
    and use the new option for pkg-install(8) there.
    
    While here switch to getopts so -qn works and not just -q -n.
    
    Sponsored by:   The FreeBSD Foundation
    Reviewed by:    manu
    Differential Revision: https://reviews.freebsd.org/D47445
    
    (cherry picked from commit 1eb3f15c149b9a2e5b6f5e10aed454fc85945bbd)
---
 usr.sbin/fwget/fwget.sh | 48 +++++++++++++++++++++++++++++++++---------------
 1 file changed, 33 insertions(+), 15 deletions(-)

diff --git a/usr.sbin/fwget/fwget.sh b/usr.sbin/fwget/fwget.sh
old mode 100644
new mode 100755
index 154fb7dc92e1..3e2181e53b73
--- a/usr.sbin/fwget/fwget.sh
+++ b/usr.sbin/fwget/fwget.sh
@@ -38,7 +38,8 @@ Supported subsystems
   pci
 
 Options:
-  -n		-- Do not install package, only print the results
+  -n		-- Do not install packages, only print the results
+  -q		-- Quiet mode.  If used with -n only prints a package a line
   -v		-- More verbose
 EOF
 	exit 1
@@ -75,22 +76,27 @@ addpkg()
 }
 
 DRY_RUN=n
+QUIET=n
 VERBOSE=n
 
-while [ $# -gt 0 ]; do
-	case $1 in
-		-n)
-			DRY_RUN=y
-			;;
-		-v)
-			VERBOSE=y
-			;;
-		*)
-			subsystems="${subsystems} $1"
-			;;
+while getopts ":nqv" _arg; do
+	case ${_arg} in
+	n)
+		DRY_RUN=y
+		;;
+	q)
+		QUIET=y
+		;;
+	v)
+		VERBOSE=y
+		;;
+	?)
+		usage
+		;;
 	esac
-	shift
 done
+shift $(($OPTIND - 1))
+subsystems="$@"
 
 # Default searching PCI subsystem
 if [ -z "${subsystems}" ]; then
@@ -112,13 +118,25 @@ done
 
 case "${packages}" in
 ""|^[[:space:]]*$)
-	echo "No firmware packages to install."
+	if [ "${QUIET}" != "y" ]; then
+		echo "No firmware packages to install."
+	fi
 	exit 0
 	;;
 esac
 
-echo "Needed firmware packages: '${packages}'"
+if [ "${QUIET}" != "y" ]; then
+	echo "Needed firmware packages: '${packages}'"
+fi
 if [ "${DRY_RUN}" = "y" ]; then
+	if [ "${QUIET}" = "y" ]; then
+		for pkg in ${packages}; do
+			case "${pkg}" in
+			""|^[[:space:]]*$) continue ;;
+			esac
+			echo "${pkg}"
+		done
+	fi
 	exit 0
 fi