Package: monitoring-plugins-contrib
Version: 42.20230308
Severity: wishlist

Dear Maintainer,

the (dsa-)check-statusfile plugin included in the package would be even
more useful if the dsa-wrap-nagios-check script that can be used to
generate the statusfile for the plugin would also be included. Without
it the user needs to implement the dsa-wrap-nagios-check itself to use
the dsa-check-statusfile.

Attached patch against debian/42.20230308 of the nagios-plugins-contrib
source package works for me. Please consider inclusion.

Best regards
-- 
  Matthias Förste

  gnupg encrypted messages are welcome - key ID: 0F51DA21
  gnupg fingerprint: 590C 5DF1 C3B8 D072 555B  54F5 9363 2C80 0F51 DA21

  internet & unix support
  Heiko Schlittermann
  Tannenstraße 2 - 01099 Dresden
  Web: http://www.schlittermann.de/
  Tel.: +49 351 8029981
  Fax:  +49 351 8029983
diff --git a/dsa/Makefile b/dsa/Makefile
index 18c87c2..3451bee 100644
--- a/dsa/Makefile
+++ b/dsa/Makefile
@@ -1,9 +1,10 @@
 #!/usr/bin/make -f
 
 PLUGIN:=$(shell cd checks; ls -1 | sed 's,^dsa-,,;s,-,_,g')
-CRONJOBS:=$(shell cd sbin; ls -1 | sed 's,^dsa-,,')
+CRONJOBS:=$(shell cd sbin; ls -1 dsa-update-*| sed 's,^dsa-,,')
 INIFILES:=etc/obsolete-packages-ignore
 DOCFILES:=$(wildcard *.cmd)
+NAGIOSLIBDIR:=/usr/lib/nagios
 
 check_%:
 	cp checks/dsa-`echo $@ | sed 's,_,-,g'` $@
@@ -20,4 +21,5 @@ include ../common.mk
 
 install::
 	install -d $(DESTDIR)$(INIDIR)/obsolete-packages-ignore.d
-
+	install -d $(DESTDIR)$(NAGIOSLIBDIR)
+	install -m 755 -o root -g root sbin/dsa-wrap-nagios-check $(DESTDIR)$(NAGIOSLIBDIR)/wrap-nagios-check
diff --git a/dsa/copyright b/dsa/copyright
index 6006f7a..a9a109c 100644
--- a/dsa/copyright
+++ b/dsa/copyright
@@ -11,6 +11,7 @@ checks/dsa-check-running-kernel:# Copyright 2010 Uli Martens
 checks/dsa-check-running-kernel:# Copyright 2011 Alexander Reichle-Schmehl
 sbin/dsa-update-apt-status:# Copyright 2009 Peter Palfrader
 sbin/dsa-update-unowned-file-status:# Copyright 2012 Peter Palfrader
+sbin/dsa-wrap-nagios-check:# Copyright 2017 Peter Palfrader
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
diff --git a/dsa/sbin/dsa-wrap-nagios-check b/dsa/sbin/dsa-wrap-nagios-check
new file mode 100755
index 0000000..cda7b2d
--- /dev/null
+++ b/dsa/sbin/dsa-wrap-nagios-check
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Copyright 2017 Peter Palfrader
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# wrap a nagios check and write a status-file to be used with dsa-check-statusfile
+
+set -u
+
+STATUSDIR=/var/cache/dsa/nagios
+
+usage(){
+  ret=$1
+
+  cat <<EOF
+$0: usage:
+  $0 <options> <nagios-check> [nagios-check-options]
+
+  Calls nagios-check and stores its result in a state
+  file in status-dir.  The state file is named after
+  the nagios check (but can be overridden with -s).
+
+  -S <dir>      state dir ($STATUSDIR)
+  -s <filename> state file name
+  -h            print this help
+EOF
+
+  exit $ret
+}
+
+
+while getopts S:s:h opt ; do
+  case "$opt" in
+    S) STATUSDIR="$OPTARG" ;;
+    s) STATUSFILE="$OPTARG";;
+    h) usage 0 ;;
+    ?) usage 1 ;;
+  esac
+done
+shift $(($OPTIND - 1))
+if [ "$#" = 0 ]; then
+  usage 1 >&2
+fi
+
+if [ -z "${STATUSFILE:-}" ]; then
+  STATUSFILE="$(basename "$1")"
+fi
+
+if ! [ -d "$STATUSDIR" ]; then
+  echo >&2 "status directory $STATUSDIR does not exist."
+  exit 3
+fi
+
+tmp=`mktemp`
+trap "rm -f '$tmp'" exit
+"$@" > "$tmp" 2>&1
+result="$?"
+case "$result" in
+  0)
+    st="OK"
+    ;;
+  1)
+    st="WARNING"
+    ;;
+  2)
+    st="CRITICAL"
+    ;;
+  *)
+    st="UNKNOWN"
+    ;;
+esac
+(echo "$st"; cat "$tmp") > "$STATUSDIR/$STATUSFILE"
diff --git a/dsa/update-files.sh b/dsa/update-files.sh
index 6539cf3..c50ab5b 100755
--- a/dsa/update-files.sh
+++ b/dsa/update-files.sh
@@ -3,7 +3,7 @@
 # update all files from the dsa nagios git
 find checks sbin share etc -type f | while read i; do
     tmp=`mktemp`
-    if wget -O "${tmp}" "https://salsa.debian.org/dsa-team/mirror/dsa-nagios/raw/master/dsa-nagios-checks/${i}";; then
+    if wget -O "${tmp}" "https://salsa.debian.org/dsa-team/mirror/dsa-nagios/-/raw/master/dsa-nagios-checks/${i}";; then
         mv "${tmp}" "$i"
     else
         rm -f "${tmp}"

Attachment: signature.asc
Description: PGP signature

Reply via email to