#!/usr/bin/env bash

# Run a ceph command against the given mstart.sh cluster.

[ $# -lt 2 ] && echo "usage: $0 <name> <command> [params...]" && exit 1

root=`dirname $0`
run_name=$1
command=$2
CEPH_BIN=""
CEPH_CONF_PATH=${CEPH_CONF_PATH:-/etc/ceph/}

[ -z "$BUILD_DIR" ] && BUILD_DIR=build

if [ -e CMakeCache.txt ]; then
    CEPH_BIN=$PWD/bin/
    [[ "$run_name" == "noname" ]] && CEPH_CONF_PATH=$PWD/ || CEPH_CONF_PATH=$PWD/run/$run_name/
elif [ -e $root/../${BUILD_DIR}/CMakeCache.txt ]; then
    cd $root/../${BUILD_DIR}
    CEPH_BIN=$PWD/bin/
    [[ "$run_name" == "noname" ]] && CEPH_CONF_PATH=$PWD/ || CEPH_CONF_PATH=$PWD/run/$run_name/
fi

shift 2

if [ "$RGW_VALGRIND" = "yes" ] && [ "$command" = "radosgw" ]; then
    valgrind --trace-children=yes --tool=memcheck --max-threads=1024 "$CEPH_BIN""$command" -c "$CEPH_CONF_PATH"ceph.conf "$@"
    sleep 10
else
    "$CEPH_BIN""$command" -c "$CEPH_CONF_PATH"ceph.conf "$@"
fi
