
set -e

# MONGOVERSION=$(mongod --version | sed -n 's/.*v\([0-9]\+\.[0-9]\+\)\..*/\1/p')
# MONGOMAJOR=$(echo $MONGOVERSION | sed -E 's/\([0-9]\+\)\..*/\1/')
# MONGOMINOR=$(echo $MONGOVERSION | sed -E 's/[0-9]\+\.\([0-9]\+\)/\1/')
MONGOVERSION=$(mongod --version | head -1 | perl -plwe 's/.*v(\d+\.\d+)\.\d+.*/$1/')
MONGOMAJOR=$(echo $MONGOVERSION | perl -plwe 's/([0-9]+)\..*/$1/')
MONGOMINOR=$(echo $MONGOVERSION | perl -plwe 's/[0-9]+\.([0-9]+)/$1/')

versionAtLeast() {
	TESTMAJOR="$1"
	TESTMINOR="$2"
	if [ "$MONGOMAJOR" -gt "$TESTMAJOR" ]; then
		return 0
	fi
	if [ "$MONGOMAJOR" -lt "$TESTMAJOR" ]; then
		return 100
	fi
	if [ "$MONGOMINOR" -ge "$TESTMINOR" ]; then
		return 0
	fi
	return 100
}

COMMONDOPTSNOIP="
	-v
	--nohttpinterface
	--noprealloc
	--nojournal
	--smallfiles
	--nssize=1
	--oplogSize=1
        --dbpath ./db
	"

if versionAtLeast 3 2; then
	# 3.2 w:majority implies j:true so we need journaling
	COMMONDOPTSNOIP="$(echo "$COMMONDOPTSNOIP" | sed '/--nojournal/d')"
        echo "COMMON = '$COMMONDOPTSNOIP'"
fi

if versionAtLeast 3 6; then
	# 3.6 doesn't take nohttpinterface
	COMMONDOPTSNOIP="$(echo "$COMMONDOPTSNOIP" | sed '/--nohttpinterface/d')"
        echo "COMMON = '$COMMONDOPTSNOIP'"
fi

# mongod options
COMMONDOPTS="
	$COMMONDOPTSNOIP
	--bind_ip=127.0.0.1
	"

# config server options
COMMONCOPTS="
	$COMMONDOPTS
	"

# shard server options
COMMONSOPTS="
	--chunkSize 1
	--bind_ip=127.0.0.1
	"

if versionAtLeast 3 2; then
	# 3.2 doesn't like --nojournal on config servers.
	COMMONCOPTS="$(echo "$COMMONCOPTS" | sed '/--nojournal/d')"
fi

if versionAtLeast 3 4; then
	# 3.4 removed chunkSize setting for shard servers
	COMMONSOPTS="$(echo "$COMMONSOPTS" | sed '/--chunkSize 1/d')"
fi

if [ "$TRAVIS" = true ]; then
	set -x
fi
