#!/usr/bin/sh
# WARNING: This file was auto-generated. Do not edit!
#
# $Id: svalert.in,v 1.1 2025-02-23 13:57:38+05:30 Cprogrammer Exp mbhangui $
#

log_syslog()
{
	case "$1" in
		"abnormal startup" | "system failure" | "abnormal shutdown")
		shift
		logger -p daemon.warning --server probe-server -t svalert $*
		;;
		*)
		shift
		logger -p daemon.info --server probe-server -t svalert $*
		;;
	esac
}

tmval=$(date +%s)
[ -n "SV_ALERT_PORT" ] && port=$SV_ALERT_PORT || port=3001

case "$#" in
	2) # run/shutdown script arguments
	# when used in run two arguments are passed
	# run script arguments
	# $1 - service directory
	# #2 - startup type
	# "abnormal startup" When ./run exits on its own
	# "system failure"   When supervise is unable to fork to execute ./run
	# "manual restart"   When svc -u or -r is used to start the service
	# "one-time startup" When svc -o is used to start the service
	# "auto startup"     Normal startup after supervise is run by svscan
	#
	# or
	#
	# when used in shutdown script or used as shutdown script
	# two arguments are passed
	# $1 - service directory
	# $2 - pid of process that was shutdown
	if [ -f /etc/indimail/svalerts.filter ] ; then
		echo $2 | /usr/bin/grep -q -w -f /etc/indimail/svalerts.filter
		if [ $? -eq 0 ] ; then
			exit 0
		fi
	fi
	word_count=$(echo "$2" | wc -w)
	if [ $word_count -eq 2 ] ; then # we are being called in ./run
		t=$(echo $2 | sed -e 's/ /-/g')
		if [ -n "USE_SYSLOG" -a -x /usr/bin/logger ] ; then
			log_syslog "$2" $hostname $PWD $1 "$2" $tmval
		elif [ -x /usr/bin/udpclient ] ; then
			exec /usr/bin/udpclient -h probe-server -p $port svalert $hostname $PWD $1 "$2" $tmval
		else
			echo svalert $hostname $PWD $1 $t $tmval | nc probe-server -u $port
		fi
	else # we are being called in ./shutdown
		if [ -n "USE_SYSLOG" -a -x /usr/bin/logger ] ; then
			log_syslog "normal shutdown" $1 PID $2 "normal shutdown"
		elif [ -x /usr/bin/udpclient ] ; then
			exec /usr/bin/udpclient -h probe-server -p $port svalert $hostname $PWD $1 PID $2 "normal-shutdown" $tmval
		else
			echo svalert $hostname $PWD $1 "normal shutdown" $tmval | nc probe-server -u $port
		fi
	fi
	;;

	3) # run script arguments when svalert gets called as svalert $* instead of svalert "$@"
	# $1 - service directory
	# #2 - startup type
	if [ -f /usr/etc/svalerts.filter ] ; then
		echo $2 | /usr/bin/grep -q -w -f /usr/etc/svalerts.filter
		if [ $? -eq 0 ] ; then
			exit 0
		fi
	fi
	if [ -n "USE_SYSLOG" -a -x /usr/bin/logger ] ; then
		log_syslog "$2 $3" $hostname $PWD $1 "$2 $3" $tmval
	elif [ -x /usr/bin/udpclient ] ; then
		exec /usr/bin/udpclient -h probe-server -p $port svalert $hostname $PWD $1 "$2 $3" $tmval
	else
		echo svalert $hostname $PWD $1 "$2 $3" $tmval | nc probe-server -u $port
	fi
	;;

	4) # alert script arguments
	# $1 - service directory
	# $2 - pid of process that died
	# $3 - exit status of process that died / signal that killed the process
	# $4 - exited/stopped/signalled
	if [ -f /usr/etc/svalerts.filter ] ; then
		/usr/bin/grep -q -w "abnormal shutdown" /usr/etc/svalerts.filter
		if [ $? -eq 0 ] ; then
			exit 0
		fi
	fi
	if [ -n "USE_SYSLOG" -a -x /usr/bin/logger ] ; then
		log_syslog "abnormal shutdown" $hostname $PWD $1 "$4-$3" $tmval
	elif [ -x /usr/bin/udpclient ] ; then
		exec /usr/bin/udpclient -h probe-server -p $port svalert $hostname $PWD $1 "abormal shutdown" "$4-$3" $tmval
	else
		echo svalert $hostname $PWD $1 "abormal shutdown" "$4-$3" $tmval | nc probe-server -u $port
	fi
	;;
esac

#
# $Log: svalert.in,v $
# Revision 1.1  2025-02-23 13:57:38+05:30  Cprogrammer
# Initial revision
#
#
