1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/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
|