#!/bin/sh

set -e


for i in $@ ; do
	case "${1}" in
	"--sql-query")
		SQL_QUERY="${2}"
		shift
		shift
	;;
	"--result-contains")
		RESULT_CONTAINS="${2}"
		shift
		shift
	;;
	"--server-address")
		SERVER_ADDRESS="${2}"
		shift
		shift
	;;
	"--db-name")
		DB_NAME="${2}"
		shift
		shift
	;;
	"--username")
		USERNAME="${2}"
		shift
		shift
	;;
	"--password")
		PASSWORD="${2}"
		shift
		shift
	;;
	"--timeout")
		TIMEOUT="${2}"
		shift
		shift
	;;
	*)
	;;
	esac
done

if [ -z "${SQL_QUERY}" ] || [ -z "${SERVER_ADDRESS}" ] || [ -z "${DB_NAME}" ] || [ -z "${USERNAME}" ] || [ -z "${PASSWORD}" ] || [ -z "${TIMEOUT}" ] ; then
	echo "Missing parameter..."
	exit 1
fi

TIMEOUT=${TIMEOUT}
STARTSTAMP=$(date +%s)

TMPFILE=$(mktemp)
echo "${SQL_QUERY}" >${TMPFILE}

ENLAPSTED=0
while [ "${ENLAPSTED}" -lt "${TIMEOUT}" ] ; do
	if [ -n "${RESULT_CONTAINS}" ] ; then
		if mysql --database=${DB_NAME} --user=${USERNAME} --password=${PASSWORD} --host=${SERVER_ADDRESS} <${TMPFILE} | grep -q "${RESULT_CONTAINS}" ; then
			rm ${TMPFILE}
			exit 0
		fi
	else
		if mysql --database=${DB_NAME} --user=${USERNAME} --password=${PASSWORD} --host=${SERVER_ADDRESS} <${TMPFILE} ; then
			rm ${TMPFILE}
			exit 0
		fi
	fi
	CURTIMESTAMP=$(date +%s)
	ENLAPSTED=$((${CURTIMESTAMP} - ${STARTSTAMP}))
	sleep 2
done
rm ${TMPFILE}
echo "Timed out..."
exit 1
