#!/bin/sh -e

CONFIG_FILE=/etc/jabberd2/users-agent.xml

TEMP=`getopt -n "$0" -o '' -l port,host,password,set-port:,set-password: -- "$@"` || exit 1
eval set -- "$TEMP"

JC_TEMPFILE=`mktemp`
cp -pf $CONFIG_FILE $JC_TEMPFILE

while :; do
	case "$1" in
	--port) sed -n '/<port>/ s,^.*<port>\(.*\)</port>.*$,\1,p' <$CONFIG_FILE
		;;
	--host) sed -n '/<hostname>/ s,^.*<hostname>\(.*\)</hostname>.*$,\1,p' <$CONFIG_FILE
		;;
	--password) sed -n '/<secret>/ s,^.*<secret>\(.*\)</secret>.*$,\1,p' <$CONFIG_FILE
		;;
	--set-port) sed -i 's,^\(.*<port>\).*\(</port>.*\)$,\1'"$2"'\2,' $JC_TEMPFILE
		;;
	--set-password) sed -i '/<secret>/ s,^\(.*<secret>\).*\(</secret>.*\)$,\1'"$2"'\2,' $JC_TEMPFILE
		;;
	--) shift; break
		;;
	esac
	shift
done

# Replace old config if it differs
if ! diff -q "$CONFIG_FILE" "$JC_TEMPFILE" >/dev/null; then
	echo "jabberd2-jud: updating config file"
	cp -pf "$CONFIG_FILE" "${CONFIG_FILE}.old"
	mv -f "$JC_TEMPFILE" "$CONFIG_FILE"
fi
