#!/bin/bash

. /usr/sbin/xivo-read-config

MONIT_CHECKS=/usr/share/wazo-monitoring/checks
MONIT_CONF_DIR=/etc/monit/conf.d

activate_check()
{
    local check=$1

    # cleanup broken link
    find $MONIT_CONF_DIR -type l -xtype l -exec rm {} \;

    if [ -e $MONIT_CONF_DIR/$check ] && [ ! -L $MONIT_CONF_DIR/$check ]; then
      rm $MONIT_CONF_DIR/$check
    fi

    if [ ! -e $MONIT_CONF_DIR/$check ]; then
      ln -s $MONIT_CHECKS/$check $MONIT_CONF_DIR/$check
    fi
}

# known services
for check in $MONIT_CHECKS/*; do
    service=$(basename $check)
    if [ "$service" = "isc-dhcp-server" ]; then
        if [ "${XIVO_DHCP_ACTIVE}" = "1" ]; then
            ln -nsf /usr/share/wazo-monitoring/checks/isc-dhcp-server /etc/monit/conf.d/isc-dhcp-server
        else
            rm -f /etc/monit/conf.d/isc-dhcp-server
        fi
    else
        activate_check $service
    fi
done

# Server config
# (backup old file)
monit_file="/etc/monit/monitrc"
if [ -e $monit_file ]; then
    today=$(date +%Y%m%d%H%M%S)
    cp $monit_file $monit_file.$today
fi
cp $monit_file.tmpl $monit_file

# restart service to take changes into account
systemctl restart monit > /dev/null
