diff bin/check-ports @ 9:6b77068e7ec8

Introduced option handling with getopts: implemented a "v" option (verbose)
author Franz Glasner <hg@dom66.de>
date Sun, 22 Oct 2017 18:21:35 +0200
parents 208545b92d43
children f08b39dacb21
line wrap: on
line diff
--- a/bin/check-ports	Sun Oct 22 18:06:32 2017 +0200
+++ b/bin/check-ports	Sun Oct 22 18:21:35 2017 +0200
@@ -76,6 +76,23 @@
     return 2
 }
 
+verbose_flag=""
+
+while getopts "v" _arg ; do
+    case ${_arg} in
+	v)
+	    verbose_flag=1
+	    ;;
+	\?)
+	    exit 2
+	    ;;
+	*)
+	    echo "option handling failed" >&2
+	    exit 2
+	;;
+    esac
+done    
+
 installed_packages=$(pkg query '%n')
 installed_data="$(pkg query '%n %v %R' $installed_packages)"
 
@@ -86,7 +103,9 @@
 while read lfqp llabel ldescr ; do
     _installed_name=${lfqp%-*}
     _installed_version=${lfqp##*-}
-    #echo $lfqp ${_installed_name} ${_installed_version} ${llabel}
+    if [ -n "${verbose_flag}" ] ; then
+	echo "${lfqp}    (${repository})"	
+    fi
     if ! assert_local_version ${_installed_name} ${_installed_version} ; then
 	echo "Assertion failed: $lfqp ${_installed_name} ${_installed_version} ${llabel}" >&2
 	exit 1
@@ -95,7 +114,9 @@
     get_remote_repo_data ${FREEBSD_REPO} ${_installed_name}
     get_repo_for_package ${_installed_name}
     if [ \( ${llabel} != '?' -a ${llabel} != '=' \) -o \( ${remote_FreeBSD_label} != '?' -a ${remote_FreeBSD_label} != '=' \) -o \( ${remote_LocalRepo_label} != '?' -a ${remote_LocalRepo_label} != '=' \) ] ; then
-	echo "${lfqp}    (${repository})"
+	if [ -z "${verbose_flag}" ] ; then
+	    echo "${lfqp}    (${repository})"
+	fi
 	echo "   ${ldescr}"
 	echo "   FreeBSD: ${remote_FreeBSD_descr}"
 	if [ ${remote_LocalRepo_label} != '?' ] ; then