From c2472fd6bd5dacdfc289bb67a3955fedb4378c7d Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch>
Date: Thu, 24 Aug 2023 13:43:03 +0200
Subject: [PATCH] update getStatusLine() for centos9

---
 check_packages2install-pkgmanager/yum.sh | 39 ++++++++++++++++++------
 1 file changed, 30 insertions(+), 9 deletions(-)

diff --git a/check_packages2install-pkgmanager/yum.sh b/check_packages2install-pkgmanager/yum.sh
index c63e1af..fb5f3e2 100644
--- a/check_packages2install-pkgmanager/yum.sh
+++ b/check_packages2install-pkgmanager/yum.sh
@@ -13,6 +13,7 @@
 #                       rename functions
 # 2022-08-31  v1.2  ah  status line depends on os major version
 # 2023-07-17  v1.3  ah  fix hiding obsolete packages
+# 2023-08-24  v1.4  ah  update getStatusLine() for centos9
 # ===============================================================
 
 
@@ -40,19 +41,39 @@ function yum.getPackageList(){
 
 # ---------------------------------------------------------------
 # get custom status
+# global  string  packages2install  output of yum.getPackageList() - see ../check_packages2install
 function yum.getStatusLine(){
   local _osversion
   typeset -i _osversion
   _osversion=$( ph.getOSMajor )
-  if [ $_osversion -ge 8 ]; then
-    if ! sudo /usr/bin/yum --security check-update 2>&1 | grep "available" ; then
-      echo "No update available. rc = $?"
-    fi
-  else
-    if ! sudo /usr/bin/yum --bugfix check-update 2>&1 | grep security; then
-      echo "No update available (older version v$_osversion). rc = $?"
-    fi
-  fi
+
+  case "$_osversion" in
+    6|7)
+      if ! sudo /usr/bin/yum --bugfix check-update 2>&1 | grep security; then
+        echo "No update available (older version v$_osversion). rc = $?"
+      fi
+      ;;
+    8)
+      if ! sudo /usr/bin/yum --security check-update 2>&1 | grep "available" ; then
+        echo "No update available. rc = $?"
+      fi
+      ;;
+    9)
+      local _total; _total=$( echo "${packages2install}" | wc -l )
+      local _sec;     _sec=$( sudo /usr/bin/yum -y --security check-update | grep -v "^Last" | grep -c "." )
+
+      if [ -z "$_sec" ]; then
+        echo "No packages needed for security; ${_total} packages available"
+      else
+        echo "$_sec package(s) needed for security, out of $_total available"
+      fi
+      ;;
+    *)
+      echo "see below ... version ${_osversion} not implemented yet..."
+      ;;
+  esac
+
+
 }
 
 # ---------------------------------------------------------------
-- 
GitLab