#/bin/bash

if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
    set -- cassandra -f "$@"
fi

if [ "x$CASSANDRA_HOME" == "x" ]; then
    echo "CASSANDRA_HOME is not set"
    exit 1
fi



: ${MGMT_API_LOG_DIR=/tmp/casslogs/}
: ${MAAC_PATH='/usr/lib/cass-management-api'}
: ${MGMT_API_LISTEN_TCP_PORT='8080'}
: ${MGMT_API_HEAP_SIZE:=128m}
$CASSANDRA_CONF="$CASSANDRA_HOME/conf"
MGMT_API_JAR="${MAAC_PATH}/datastax-mgmtapi-server.jar"

MGMT_API_ARGS=""
MGMT_API_CASSANDRA_SOCKET="--cassandra-socket /tmp/cassandra.sock"
MGMT_API_LISTEN_TCP="--host tcp://0.0.0.0:${MGMT_API_LISTEN_TCP_PORT}"
MGMT_API_LISTEN_SOCKET="--host file:///tmp/oss-mgmt.sock"

MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_CASSANDRA_SOCKET $MGMT_API_LISTEN_TCP $MGMT_API_LISTEN_SOCKET"

if [ ! -z "$MGMT_API_EXPLICIT_START" ]; then
    MGMT_API_EXPLICIT_START="--explicit-start $MGMT_API_EXPLICIT_START"
    MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_EXPLICIT_START"
fi

if [ ! -z "$MGMT_API_TLS_CA_CERT_FILE" ]; then
    MGMT_API_TLS_CA_CERT_FILE="--tlscacert $MGMT_API_TLS_CA_CERT_FILE"
    MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_TLS_CA_CERT_FILE"
fi
if [ ! -z "$MGMT_API_TLS_CERT_FILE" ]; then
    MGMT_API_TLS_CERT_FILE="--tlscert $MGMT_API_TLS_CERT_FILE"
    MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_TLS_CERT_FILE"
fi
if [ ! -z "$MGMT_API_TLS_KEY_FILE" ]; then
    MGMT_API_TLS_KEY_FILE="--tlskey $MGMT_API_TLS_KEY_FILE"
    MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_TLS_KEY_FILE"
fi

if [ ! -z "$MGMT_API_PID_FILE" ]; then
    MGMT_API_PID_FILE="--pidfile $MGMT_API_PID_FILE"
    MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_PID_FILE"
fi

MGMT_API_CASSANDRA_HOME="--cassandra-home ${CASSANDRA_HOME}"
MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_CASSANDRA_HOME"

if [ ! -z "$MGMT_API_NO_KEEP_ALIVE" ]; then
    MGMT_API_NO_KEEP_ALIVE="--no-keep-alive $MGMT_API_NO_KEEP_ALIVE"
    MGMT_API_ARGS="$MGMT_API_ARGS $MGMT_API_NO_KEEP_ALIVE"
fi


echo "Starting Management API"
CMD="java ${MGMT_API_JAVA_OPTS} -Xms${MGMT_API_HEAP_SIZE} -Xmx${MGMT_API_HEAP_SIZE} -jar $MGMT_API_JAR $MGMT_API_ARGS"
echo "Running: $CMD"
exec $CMD


