From 53b2f145db551902ae9530a2d1e43e00ff107235 Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Mon, 15 Jan 2007 11:46:25 +0000
Subject: [PATCH] Added support for Gentoo.

---
 bin/compile-nagios-plugins                     |  4 ++++
 bin/compile-nrpe                               |  4 ++++
 bin/install-local                              |  1 +
 bin/install-nrpe                               |  4 ++--
 bin/utils/functions.sh                         | 18 ++++++++++++++++++
 rules/gentoo/config-nrpe.sh                    |  4 ++++
 rules/gentoo/nrpe-host-auto.sh                 | 16 ++++++++++++++++
 site-rules/lysator/config-nrpe-posthook.sh     |  4 ++++
 .../gentoo/compile-nagios-plugins-prehook.sh   |  1 +
 .../lysator/gentoo/compile-nrpe-prehook.sh     |  1 +
 .../gentoo/install-nagios-plugins-prehook.sh   |  1 +
 .../lysator/gentoo/install-nrpe-prehook.sh     |  4 ++++
 site-rules/lysator/gentoo/os                   |  1 +
 site-rules/lysator/gentoo/setup-env.sh         |  1 +
 .../lysator/solaris10/config-nrpe-posthook.sh  |  2 --
 15 files changed, 62 insertions(+), 4 deletions(-)
 create mode 100644 rules/gentoo/config-nrpe.sh
 create mode 100644 rules/gentoo/nrpe-host-auto.sh
 create mode 100644 site-rules/lysator/config-nrpe-posthook.sh
 create mode 100644 site-rules/lysator/gentoo/compile-nagios-plugins-prehook.sh
 create mode 100644 site-rules/lysator/gentoo/compile-nrpe-prehook.sh
 create mode 100644 site-rules/lysator/gentoo/install-nagios-plugins-prehook.sh
 create mode 100644 site-rules/lysator/gentoo/install-nrpe-prehook.sh
 create mode 100644 site-rules/lysator/gentoo/os
 create mode 100644 site-rules/lysator/gentoo/setup-env.sh

diff --git a/bin/compile-nagios-plugins b/bin/compile-nagios-plugins
index 8173bd7..7488f64 100755
--- a/bin/compile-nagios-plugins
+++ b/bin/compile-nagios-plugins
@@ -7,6 +7,8 @@
 source_fragment set-prefix.sh
 source_fragment setup-env.sh
 
+run_hook compile-nagios-plugins-prehook.sh
+
 if [ -f ../nagios-plugins-*/Makefile ]
 then
     echo ../nagios-plugins-*/Makefile exists.  Not running configure. >&2
@@ -22,3 +24,5 @@ else
     echo Running make in ../nagios-plugins-* >&2
     (cd ../nagios-plugins-* && make)
 fi
+
+run_hook compile-nagios-plugins-posthook.sh
diff --git a/bin/compile-nrpe b/bin/compile-nrpe
index ee49a3d..7e975aa 100755
--- a/bin/compile-nrpe
+++ b/bin/compile-nrpe
@@ -7,6 +7,8 @@
 source_fragment set-prefix.sh
 source_fragment setup-env.sh
 
+run_hook compile-nrpe-prehook.sh
+
 if [ -f ../nrpe-*/Makefile ]
 then
     echo ../nrpe-*/Makefile exists.  Not running configure. >&2
@@ -23,3 +25,5 @@ else
     echo Running make in ../nrpe-* >&2
     (cd ../nrpe-* && make)
 fi
+
+run_hook compile-nrpe-posthook.sh
diff --git a/bin/install-local b/bin/install-local
index 1b1728f..965df9c 100755
--- a/bin/install-local
+++ b/bin/install-local
@@ -7,3 +7,4 @@ source_fragment set-prefix.sh
 source_fragment setup-env.sh
 
 make install PREFIX=$prefix || exit 1
+mkdir -p $prefix/etc
diff --git a/bin/install-nrpe b/bin/install-nrpe
index da580ab..c4ef2a3 100755
--- a/bin/install-nrpe
+++ b/bin/install-nrpe
@@ -7,6 +7,8 @@
 source_fragment set-prefix.sh
 source_fragment setup-env.sh
 
+run_hook install-nrpe-prehook.sh
+
 if [ -f ../nrpe-*/src/nrpe ]
 then :
 else
@@ -14,8 +16,6 @@ else
     exit 1
 fi
 
-run_hook install-nrpe-prehook.sh
-
 mkdir -p $prefix/bin $prefix/etc
 cp ../nrpe-*/src/nrpe $prefix/bin
 
diff --git a/bin/utils/functions.sh b/bin/utils/functions.sh
index eb8ee6e..88b0ada 100644
--- a/bin/utils/functions.sh
+++ b/bin/utils/functions.sh
@@ -75,3 +75,21 @@ tempfile () {
     echo /tmp/$1.$$ && exit 0
     exit 1
 }
+
+gentoo_add_use () {
+    package="$1"
+    use="$2"
+    fn=/etc/portage/package.use
+
+    if grep "^$package[ 	]" $fn >/dev/null
+    then
+	if grep "^$package[ 	].*$use\($\|[ 	]\)" $fn >/dev/null
+        then :
+	else
+	    echo Please add $use use flags to $package in $use. >&2
+	    exit 1
+	fi
+    else
+	echo $package $use >> $fn
+    fi
+}
diff --git a/rules/gentoo/config-nrpe.sh b/rules/gentoo/config-nrpe.sh
new file mode 100644
index 0000000..117fe15
--- /dev/null
+++ b/rules/gentoo/config-nrpe.sh
@@ -0,0 +1,4 @@
+rc-update -a nrpe default
+rm /etc/nagios/nrpe.cfg
+ln -s $prefix/etc/nrpe.cfg /etc/nagios/nrpe.cfg
+/etc/init.d/nrpe restart
diff --git a/rules/gentoo/nrpe-host-auto.sh b/rules/gentoo/nrpe-host-auto.sh
new file mode 100644
index 0000000..584a779
--- /dev/null
+++ b/rules/gentoo/nrpe-host-auto.sh
@@ -0,0 +1,16 @@
+FILESYSTEMS=`tempfile nrpfs`
+trap "rm -f $FILESYSTEMS" 0
+
+> $prefix/etc/nrpe-host-auto.cfg
+awk < /etc/fstab \
+    '! ($1 ~ /\//) { next } 
+     $3 == "swap" || $3 == "nfs" { next } 
+     $4 ~ /noauto/ { next } 
+     { print $1, $2 }' \
+| while read dev mp
+  do
+    mpdash=`echo $mp | sed -e 's%^/$%/root%' -e 's%/%-%g'`
+    echo "command[check-disk$mpdash]=/usr/nagios/libexec/check_disk $dev" \
+	>> $prefix/etc/nrpe-host-auto.cfg
+    echo $mp
+  done > $FILESYSTEMS
diff --git a/site-rules/lysator/config-nrpe-posthook.sh b/site-rules/lysator/config-nrpe-posthook.sh
new file mode 100644
index 0000000..985e391
--- /dev/null
+++ b/site-rules/lysator/config-nrpe-posthook.sh
@@ -0,0 +1,4 @@
+echo
+echo BEGIN `hostname | sed 's/\..*//'` nagiosadmin
+sed 's/^/fs /' $FILESYSTEMS | sort
+echo END
diff --git a/site-rules/lysator/gentoo/compile-nagios-plugins-prehook.sh b/site-rules/lysator/gentoo/compile-nagios-plugins-prehook.sh
new file mode 100644
index 0000000..ca916d0
--- /dev/null
+++ b/site-rules/lysator/gentoo/compile-nagios-plugins-prehook.sh
@@ -0,0 +1 @@
+exit 0
diff --git a/site-rules/lysator/gentoo/compile-nrpe-prehook.sh b/site-rules/lysator/gentoo/compile-nrpe-prehook.sh
new file mode 100644
index 0000000..ca916d0
--- /dev/null
+++ b/site-rules/lysator/gentoo/compile-nrpe-prehook.sh
@@ -0,0 +1 @@
+exit 0
diff --git a/site-rules/lysator/gentoo/install-nagios-plugins-prehook.sh b/site-rules/lysator/gentoo/install-nagios-plugins-prehook.sh
new file mode 100644
index 0000000..ca916d0
--- /dev/null
+++ b/site-rules/lysator/gentoo/install-nagios-plugins-prehook.sh
@@ -0,0 +1 @@
+exit 0
diff --git a/site-rules/lysator/gentoo/install-nrpe-prehook.sh b/site-rules/lysator/gentoo/install-nrpe-prehook.sh
new file mode 100644
index 0000000..3016900
--- /dev/null
+++ b/site-rules/lysator/gentoo/install-nrpe-prehook.sh
@@ -0,0 +1,4 @@
+gentoo_add_use net-analyzer/nagios-nrpe -ssl
+
+emerge -uvakb nagios-nrpe || exit 1
+exit 0
diff --git a/site-rules/lysator/gentoo/os b/site-rules/lysator/gentoo/os
new file mode 100644
index 0000000..23574f3
--- /dev/null
+++ b/site-rules/lysator/gentoo/os
@@ -0,0 +1 @@
+gentoo
diff --git a/site-rules/lysator/gentoo/setup-env.sh b/site-rules/lysator/gentoo/setup-env.sh
new file mode 100644
index 0000000..fd9b6b3
--- /dev/null
+++ b/site-rules/lysator/gentoo/setup-env.sh
@@ -0,0 +1 @@
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
diff --git a/site-rules/lysator/solaris10/config-nrpe-posthook.sh b/site-rules/lysator/solaris10/config-nrpe-posthook.sh
index 45559be..05357da 100755
--- a/site-rules/lysator/solaris10/config-nrpe-posthook.sh
+++ b/site-rules/lysator/solaris10/config-nrpe-posthook.sh
@@ -1,5 +1,3 @@
-#!/bin/sh
-
 echo
 echo BEGIN `hostname | sed 's/\..*//'` nagiosadmin
 sed 's/^/fs /' $FILESYSTEMS | sort
-- 
GitLab