diff --git a/check_packages2install b/check_packages2install index 116ed2ec06359b7032dcfcf52bd42cee31d01895..cce6b7bc174b8aecd380d0c3aa2c4f1f604360ed 100755 --- a/check_packages2install +++ b/check_packages2install @@ -21,6 +21,8 @@ # 2021-12-17 v1.7 <axel.hahn@iml.unibe.ch> show non matching packages in section "other" # 2021-12-20 v1.8 <axel.hahn@iml.unibe.ch> show all packages if no filter matched # 2022-06-03 v1.9 <axel.hahn@iml.unibe.ch> call yum with path; shellcheck updates; plugin like package managers +# 2022-06-07 v1.10 <axel.hahn@iml.unibe.ch> fix iPkg2Update on empty package list +# rename package manager functions # ====================================================================== @@ -88,11 +90,17 @@ Get packages that must be updated on this system Licence: GNU GPL 3 ______________________________________________________________________ -Get packages that must be updated on this system ans show found +Get packages that must be updated on this system and show found packages in groups. -For groups and their search filters see files in subdir -check_packages2install-data. +RELATED FILES: +1) For groups and their search filters see files in subdir + check_packages2install-data. +2) In the subdir check_packages2install-pkgmanager are scripts + for supported package managers (with aded ".sh"). + +OUTPUT: +It returns UNKNOWN if package manager is not supported. It returns OK if the system is up to date. It returns WARNING or ERROR if count of found pakackes is greater than @@ -111,13 +119,12 @@ $_self [options] OPTIONS: - -h show this help -w custom warning level; default: $iWarnDefault -c custom critical level; default: $iCriticalDefault PARAMETERS: - None. + -h show this help EOF } @@ -153,7 +160,7 @@ function _detectPkgManager(){ function showFilteredPackages(){ # filtered package view - if [ ! -z "$packages2install" ]; then + if [ -n "$packages2install" ]; then typeset -i iTotal iTotal=$( echo "$packages2install" | wc -l ) typeset -i iFound=0 @@ -194,7 +201,6 @@ function showFilteredPackages(){ # total packages echo Total packages to install: $iTotal - ph.perfadd "updates-available" "$iTotal" ${iWarnLimit} ${iCriticalLimit} fi @@ -224,7 +230,7 @@ fi # load functions for the detected package manager . "${dir_pkg}/${pkgmanager}.sh" || exit 2 -packagemanOut=$( ${pkgmanager}GetUpdates ) +packagemanOut=$( ${pkgmanager}.GetUpdates ) if [ -z "$packagemanOut" ]; then ph.setStatus "critical" @@ -232,9 +238,9 @@ if [ -z "$packagemanOut" ]; then else # generated function names - package manager is prefix - function2install="${pkgmanager}Packages" - _functionExists "${pkgmanager}Status" && functionStatus="${pkgmanager}Status" - _functionExists "${pkgmanager}Critical" && functionCritical="${pkgmanager}Critical" + function2install="${pkgmanager}.getPackageList" + _functionExists "${pkgmanager}.getStatusLine" && functionStatus="${pkgmanager}.getStatusLine" + _functionExists "${pkgmanager}.getCriticalList" && functionCritical="${pkgmanager}.getCriticalList" # count of packages ... to install ... critical (centos only) typeset -i iPkg2Update=0 @@ -242,7 +248,7 @@ else # get list of packages 2 install packages2install=$( $function2install ) - iPkg2Update=$( echo "$packages2install" | wc -l ) + iPkg2Update=$( test -n "$packages2install" && echo "$packages2install" | wc -l ) # custom: status text test -n "$functionStatus" && statusLabel="[$pkgmanager] $( $functionStatus )" @@ -259,6 +265,7 @@ else else ph.setStatusByLimit ${iPkg2Update} ${iWarnLimit} ${iCriticalLimit} fi + ph.perfadd "updates-available" "${iPkg2Update}" "${iWarnLimit}" "${iCriticalLimit}" # set label for status line if [ -z "$statusLabel" ]; then