#!/bin/sh

set -e
set -u

ejabberd_yml='/etc/ejabberd/ejabberd.yml'
ip_url='https://ifconfig.co/ip'
old_ip=$(sed -n 's/^[[:blank:]]\{1,\}turn_ipv4_address:[[:blank:]]*"\?\([[:digit:].]*\)"\?.*$/\1/p' "$ejabberd_yml")
new_ip=$(curl -fsS4 "$ip_url")

if [ -z "$old_ip" ]
then
	echo >&2 "FATAL: Found no 'turn_ipv4_address' in $ejabberd_yml"
	exit 1
fi

if [ -z "$new_ip" ]
then
	echo >&2 "FATAL: Cannot retrieve my IP address from $ip_url"
	exit 1
fi

if [ "$old_ip" != "$new_ip" ]
then
	sed -i "s/$old_ip/$new_ip/" "$ejabberd_yml"
	exec ejabberdctl restart
fi
