#!/bin/sh -e

CONFIG_FILE=/etc/jabber-muc/muc.xml

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

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

while :; do
	case "$1" in
	--ip) xmlstarlet sel -t -v '/jcr/ip' <$CONFIG_FILE
		;;
	--port) xmlstarlet sel -t -v '/jcr/port' <$CONFIG_FILE
		;;
	--host) xmlstarlet sel -t -v '/jcr/host' <$CONFIG_FILE
		;;
	--password) xmlstarlet sel -t -v '/jcr/secret' <$CONFIG_FILE
		;;
	--set-port) xmlstarlet ed -P -S -O -u '/jcr/port' -v "$2" $JC_TEMPFILE >$JC_TEMP; cp -pf $JC_TEMP $JC_TEMPFILE
		;;
	--set-password) xmlstarlet ed -P -S -O -u '/jcr/secret' -v "$2" $JC_TEMPFILE >$JC_TEMP; cp -pf $JC_TEMP $JC_TEMPFILE
		;;
	--) shift; break
		;;
	esac
	shift
done

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