#!/usr/bin/env sh

. /usr/local/share/vulture/helpers.sh

#############
# variables #
#############
host="mongodb"
database="vulture"

#############
# functions #
#############
usage() {
    /bin/echo "USAGE connect [-d <database>] [-s <server>] [mongo/mongosh options]"
    /bin/echo "This command opens a CLI to the local or distant DB, or executes a specific command on it"
    /bin/echo ""
    /bin/echo "OPTIONS:"
    /bin/echo "	-d <database>	specify a DB name to connect to (default is 'vulture')"
    /bin/echo "	-s <server>	specify a hostname to connect to (default is local DB)"
    exit 1
}

finalize_early() {
    # shellcheck disable=SC2317
    finalize 1 "Stopped"
}

finalize() {
    err_code=$1
    err_message=$2
    error_and_exit "${err_code}" "$err_message"
}

########
# main #
########
trap finalize_early INT

while getopts 'hd:s:' opt; do
    case "${opt}" in
        d)  database="${OPTARG}";
            ;;
        s)  host="${OPTARG}";
            ;;
        h|*) usage;
            ;;
    esac
done
shift $((OPTIND-1))

COMMAND="$(get_client_command)"
TLS_PARAMS="$(get_tls_params "${COMMAND}")"
URI="$(get_uri "${host}")/${database}"
$COMMAND $TLS_PARAMS $URI --quiet "$@"
