From 5cf33871a703bb9e5a618ac1613258208869a059 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Fri, 14 Oct 2022 09:43:58 +0200
Subject: [PATCH] fix debian output on no reboot-required.pkgs

---
 check_reboot_required | 72 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 64 insertions(+), 8 deletions(-)

diff --git a/check_reboot_required b/check_reboot_required
index 20bc63a..79609f7 100755
--- a/check_reboot_required
+++ b/check_reboot_required
@@ -5,27 +5,81 @@
 #
 # ----------------------------------------------------------------------
 # works for sure on
-# - centos7
-# - debian6,7
+# - centos7,8
+# - debian6..10
 # - ubuntu10,12
 # ----------------------------------------------------------------------
 # 2016-08-12  added ouput of packages
 # 2020-03-05  v1.2  <axel.hahn@iml.unibe.ch> switch to ph.* helper functions
+# 2022-10-14  v1.3  <axel.hahn@unibe.ch>     fix debian output if /var/run/reboot-required.pkgs does not exist
+#                                            Shellfixes; add help
 # ======================================================================
 
 
-. `dirname $0`/inc_pluginfunctions
-distro=`ph.getOS`
+. $(dirname $0)/inc_pluginfunctions
 
+self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] )
+self_APPVERSION=1.3
+
+distro=$( ph.getOS )
+
+# ----------------------------------------------------------------------
+# functions
 # ----------------------------------------------------------------------
+
+function showHelp(){
+cat <<EOF
+______________________________________________________________________
+
+$self_APPNAME 
+v$self_APPVERSION
+
+(c) Institute for Medical Education - University of Bern
+Licence: GNU GPL 3
+______________________________________________________________________
+
+Check if a reboot is required.
+It works for Centos and Debian/ Ubuntu.
+
+If the reboot is required:
+* On Centos it shows the kernel number that will be installed,
+* On Debian7 Ubuntu it shows the packages that require the reboot,
+
+SYNTAX:
+$(basename $0)
+
+OPTIONS:
+
+    -h or --help   show this help.
+
+PARAMETERS:
+
+    None.
+
+EXAMPLE:
+$(basename $0)
+
+EOF
+}
+# ----------------------------------------------------------------------
+
+# --- check param -h
+case "$1" in
+    "--help"|"-h")
+        showHelp
+        exit 0
+        ;;
+    *)
+esac
+
 case $distro in
 
   "centos")
-    currentkernel=`uname -r`
-    out=`rpm -q --last kernel | head -1 | fgrep $currentkernel`
+    currentkernel=$(uname -r)
+    out=$(rpm -q --last kernel | head -1 | fgrep $currentkernel)
     if [ -z "$out" ]; then
       ph.setStatus "warning"
-      ph.status "[$distro] need to reboot for kernel `rpm -q --last kernel | head -1` (current: $currentkernel)"
+      ph.status "[$distro] need to reboot for kernel $(rpm -q --last kernel | head -1) (current: $currentkernel)"
     else
       ph.status "[$distro] no reboot required (kernel is up to date: $currentkernel)"
     fi
@@ -36,8 +90,10 @@ case $distro in
     if [ ! -f /var/run/reboot-required ]; then
         ph.status "[$distro] no reboot required"
     else
+        byPackages="(I do not know the package that requires it)"
+        test -f /var/run/reboot-required.pkgs && byPackages="by $( tr '\n' ',' < /var/run/reboot-required.pkgs )"
         ph.setStatus "warning"
-        ph.status "[$distro] `cat /var/run/reboot-required` by `tr '\n' ',' </var/run/reboot-required.pkgs`"
+        ph.status "[$distro] $( cat /var/run/reboot-required ) ${byPackages}"
     fi
     ;;
 
-- 
GitLab