#!/bin/bash

P=sysbench-install
VERSION=0.4.12
MYSQL_VERSION=5.0.51a
POSTGRES_VERSION=9.2.1
DBUSER=root
DBPASSWORD=shellpack-mysqlbench
NUM_CPU=$(grep -c '^processor' /proc/cpuinfo)
DBDRIVER=postgres
. $SHELLPACK_INCLUDE/common.sh

# Basic args parser
while [ "$1" != "" ]; do
	case "$1" in
		-v)	export VERSION=$2; shift 2;;
		--use-mysql)
			export DBDRIVER=mysql
			shift;;
		--use-postgres)
			export DBDRIVER=postgres
			shift;;
		*)	echo Unrecognised option: $1; shift
	esac
done

WEB_LOCATION=http://surfnet.dl.sourceforge.net/sourceforge/sysbench/sysbench-${VERSION}.tar.gz
MIRROR_LOCATION="$WEBROOT/sysbench/sysbench-${VERSION}.tar.gz"

pushd $SHELLPACK_SOURCES > /dev/null

# Set path of necessary
if [ "`echo $PATH | grep $DBDRIVER`" = "" ]; then
	export PATH=$SHELLPACK_SOURCES/mysql-${MYSQL_VERSION}-installed/bin:$SHELLPACK_SOURCES/postgres-${POSTGRES_VERSION}-installed/bin:$SHELLPACK_SOURCES/sysbench$DBDRIVER-${VERSION}-installed/bin:$PATH
fi

if [ ! -e sysbench$DBDRIVER-${VERSION}-installed ]; then
	sources_fetch $WEB_LOCATION $MIRROR_LOCATION $SHELLPACK_SOURCES/sysbench-${VERSION}.tar.gz

	DST_DIR=`tar tf sysbench-${VERSION}.tar.gz | head -n 1`
	tar xf sysbench-${VERSION}.tar.gz
	if [ $? -ne 0 ]; then
		die "$P: tar zxf sysbench-${VERSION}.tar.gz failed"
	fi
	[ "$DST_DIR" != "sysbench$DBDRIVER-${VERSION}/" ] && mv $DST_DIR sysbench$DBDRIVER-${VERSION}
	cd sysbench$DBDRIVER-${VERSION}
	
	# Configure sysbench
	if [ "$DBDRIVER" = "postgres" ]; then
		CONFIGURE_ARGS="--without-mysql --with-pgsql"
	fi

	echo Running autoreconf
	touch NEWS
	touch AUTHORS
	autoreconf -f  -i

	CFLAGS="-O2" \
		./configure $CONFIGURE_ARGS \
		  --prefix=$SHELLPACK_SOURCES/sysbench$DBDRIVER-$VERSION-installed \
			|| die "Failed to configure"

	# Patch sysbench to properly insert tables
	echo "--- sysbench/drivers/pgsql/drv_pgsql.c.orig	2010-12-03 14:14:59.000000000 +0000
+++ sysbench/drivers/pgsql/drv_pgsql.c	2010-12-03 14:15:23.000000000 +0000
@@ -84,7 +84,7 @@
 
 static drv_caps_t pgsql_drv_caps =
 {
-  0,
+  1,
   1,
   1,
   0,
" | patch -p0 || exit -1

	echo Building sysbench
	make -j$NUM_CPU || die "Failed to build sysbench"

	echo Installing sysbench
	make install || die "Failed to install sysbench"
fi

echo sysbench for $DBDRIVER successfully installed
exit $SHELLPACK_SUCCESS
#### Description Run the sysbench benchmark
#### Details sysbench 32
