#!/bin/bash

function info() {
	echo "Q3server MOTD updater v0.1 by Nexu <nexu.jin@gmail.com>"
	echo "USAGE: motd-update.sh <ip:port> <rconpass>"
	echo
	echo "Quotes are taken from quotes.txt"
}

if [ $# -lt 2 ]; then
	info
	exit 100
fi

IP=$(echo $1 | sed 's/\(.*\):\(.*\)/\1/')
PORT=$(echo $1 | sed 's/\(.*\):\(.*\)/\2/')
RCONPASS=$2
REPLY=/tmp/.motd-update`date +%Y%m%d`.tmp

RANDOM=$[$RANDOM%`date +%s`]
QLIBSIZE=$(cat quotes.txt | wc -l)
QNR=$[${RANDOM}%${QLIBSIZE}]
NEWMOTD=$(sed -n ${QNR}p quotes.txt)

function getMotd() {
	echo -n "connecting .."
	./qcmd -ip ${IP} -p ${PORT} -c rcon ${RCONPASS} g_motd > ${REPLY}
	if [ $(grep ERROR ${REPLY} | wc -l) == "1" ]
	then
		echo " failed!"
		return 2
	else
		echo " done"
		echo "----------------------------------------------------------"
		grep ^Time ${REPLY}
		grep ^To ${REPLY}
		echo -n "MOTD is   '"
		grep -v Command ${REPLY} | grep g_motd | sed "s/\(.*\):\(.*\)\ default:\(.*\)/\2'/"
		echo "----------------------------------------------------------"
	fi
}

function setMotd() {
	echo "New MOTD  \"${NEWMOTD}\""
	./qcmd -ip ${IP} -p ${PORT} -c rcon ${RCONPASS} g_motd "${NEWMOTD}" > /dev/null
}

getMotd || exit 2
setMotd


