#!/bin/bash

function usage {
  echo "$(basename $0) usage: "
  echo "    -u username Example: root"
  echo "    -p password Example: 1234"
  echo "    -h host Example: localhost"
  echo "    -d database Example: local"
  echo "    -q query Example: db.test.findOne()"
  echo ""
  exit 1
}

while [[ $# -gt 1 ]]
do
  key="$1"
  case $key in
    -u)
    USER="$2"
    shift
    ;;
    -p)
    PASS="$2"
    shift
    ;;
    -h)
    HOST="$2"
    shift
    ;;
    -d)
    DATABASE="$2"
    shift
    ;;
    -q)
    QUERY="$2"
    shift
    ;;
    *)
    usage
    shift
    ;;
  esac
  shift
done

[ ! -z ${HOST} ] && \
[ ! -z ${DATABASE} ] && \
[ ! -z ${QUERY} ] || usage

if [[ ${USER} == "" || ${PASS} == "" ]]
then
  MONGO="$(which mongo) --host ${HOST} ${DATABASE}"
else
  MONGO="$(which mongo) -u ${USER} -p ${PASS} --host ${HOST} ${DATABASE}"
fi

MONGO_CHECK=$(echo "${QUERY}" | ${MONGO})
if [ $? -ne 0 ]
then
  echo "CRITICAL - Failed to execute query ${QUERY} on MongoDB host ${HOST}"
  exit 2
else
  echo "OK - MongoDB"
  exit 0
fi