File nconf-1.2.5.0-deploy_local.patch of Package nconf
Index: nconf/ADD-ONS/deploy_local.sh
===================================================================
--- nconf.orig/ADD-ONS/deploy_local.sh
+++ nconf/ADD-ONS/deploy_local.sh
@@ -4,15 +4,36 @@ OUTPUT_DIR="/var/www/html/nconf/output/"
NAGIOS_DIR="/usr/local/nagios/etc/"
TEMP_DIR=${NAGIOS_DIR}"import/"
CONF_ARCHIVE="NagiosConfig.tgz"
+NAGIOS='/usr/local/bin/nagios'
-if [ ! -e ${TEMP_DIR} ] ; then
-mkdir -p ${TEMP_DIR}
+function update_config() {
+ cp -p "${OUTPUT_DIR}${CONF_ARCHIVE}" "${TEMP_DIR}${CONF_ARCHIVE}"
+ tar -xf "${TEMP_DIR}${CONF_ARCHIVE}" -C "${NAGIOS_DIR}"
+ for file in $(tar -tf "${TEMP_DIR}${CONF_ARCHIVE}"); do
+ chown root:root "${NAGIOS_DIR}$file"
+ done
+ if [ -x $NAGIOS ]; then
+ if $NAGIOS -v $NAGIOS_DIR/nagios.cfg >/dev/null ; then
+ PID=$(pidof nagios)
+ if [ x"$PID" -ne x"" ]; then
+ kill -HUP $PID
+ fi
+ else
+ echo "Configuration seems not to be valid - skipping reload. Please check, fix and reload Nagios manually" >&2
+ fi
+ fi
+}
+
+if [ ! -e "${TEMP_DIR}" ] ; then
+ mkdir -p "${TEMP_DIR}"
+fi
+
+if [ ! -e "${TEMP_DIR}${CONF_ARCHIVE}" ]; then
+ update_config
fi
-if [ ${OUTPUT_DIR}${CONF_ARCHIVE} -nt ${TEMP_DIR}${CONF_ARCHIVE} ] ; then
-cp -p ${OUTPUT_DIR}${CONF_ARCHIVE} ${TEMP_DIR}${CONF_ARCHIVE}
-tar -xf ${TEMP_DIR}${CONF_ARCHIVE} -C ${NAGIOS_DIR}
-/etc/init.d/nagios reload
+if [ "${OUTPUT_DIR}${CONF_ARCHIVE}" -nt "${TEMP_DIR}${CONF_ARCHIVE}" ] ; then
+ update_config
fi
exit