#!/bin/bash
set -eo pipefail

STATUS=0
AMF_PORT_FOR_NGAP=38412
AMF_PORT_FOR_N11_HTTP=80
AMF_IP_NGAP_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_NGAP | grep inet | awk {'print $2'})
AMF_IP_N11_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_N11 | grep inet | awk {'print $2'})
N2_PORT_STATUS=$(netstat -Snpl | grep -o "$AMF_IP_NGAP_INTERFACE:$AMF_PORT_FOR_NGAP")
N11_PORT_STATUS=$(netstat -tnpl | grep -o "$AMF_IP_N11_INTERFACE:$AMF_PORT_FOR_N11_HTTP")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-amf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`

if [ $NB_UNREPLACED_AT -ne 0 ]; then
	STATUS=1
	echo "Healthcheck error: configuration file is not configured properly"
fi

if [[ -z $N2_PORT_STATUS ]]; then
	STATUS=1
	echo "Healthcheck error: N2 SCTP port $AMF_PORT_FOR_NGAP is not listening"
fi

if [[ -z $N11_PORT_STATUS ]]; then
	STATUS=1
	echo "Healthcheck error: N11/SBI TCP/HTTP port $AMF_PORT_FOR_N11_HTTP is not listening"
fi

host="${MYSQL_SERVER}"
user="${MYSQL_USER:-root}"
export MYSQL_PWD="${MYSQL_PASS}"

args=(
	-h"$host"
	-u"$user"
	--silent
)

if ! command -v mysql &> /dev/null; then
	echo "Installing mysql command"
	apt update
	apt-get -y install mysql-client
else
	if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
		database_check=$(mysql -h$host -u$user -D oai_db --silent -e "SELECT * FROM users;")
		if [[ -z $database_check ]]; then
			echo "Healthcheck error: oai_db not populated"
			STATUS=1
		fi
		STATUS=0
	else
		echo "Healthcheck error: Mysql port inactive"
		STATUS=1
	fi
fi

exit $STATUS