#!/bin/bash
#
# $Id: build_rpms 1734 2012-10-25 18:07:16Z dhill $
#

verbose=0
prefix=/usr/local/mariadb/columnstore
#mysqldir=$prefix/mariadb-columnstore/mysql
columnstoredir=$prefix

# set default as community
community=true

usage()
{
cat <<EOD
usage: build_rpms [--community] [--verbose] [--local-mysql] [--help]
   --local-mysql use local (relative) mysql binary tree
EOD
}

for arg in "$@"; do
	if [ `expr -- "$arg" : '--verbose'` -eq 9 ]; then
		((verbose++))
	elif [ `expr -- "$arg" : '--local-mysql'` -eq 13 ]; then
		mysqldir=../mariadb/columnstore/mysql
	elif [ `expr -- "$arg" : '--help'` -eq 6 ]; then
		usage
		exit 0
	elif [ `expr -- "$arg" : '--community'` -eq 11 ]; then
                community=true
	else
		echo "ignoring unknown argument: $arg" 1>&2
	fi
done

#try to find project root
while [ ! -d dbcon ]; do
	cd ..
	curdir=$(pwd)
	if [ $curdir = / -o $curdir = $HOME ]; then
		echo "I could not find the project root directory: I can't continue!"
		exit 1
	fi
done

if [ ! -f ./build/releasenum ]; then
	echo "I could not find the file 'releasesum' in the build directory: I can't continue!"
	exit 1
fi

. ./build/releasenum

# make the install package
buildroot=$HOME/rpm/BUILD/mariadb-columnstore-$version.$release

sudo rm -rf $buildroot
mkdir -p $buildroot
mkdir -p $buildroot/mariadb/columnstore
echo -n "Writing binary files to $buildroot..."
sudo chown -R builder:builder $columnstoredir
/bin/cp -f -r $columnstoredir/* $buildroot/mariadb/columnstore/.

/bin/cp -r build/releasenum $buildroot/mariadb/columnstore/.

#get mysql server files
#pushd $mysqldir > /dev/null
#mkdir -p $buildroot/mariadb/columnstore/mysql
#cpio -pdmu --quiet $buildroot/mariadb/columnstore/mysql < files.lst
#popd >/dev/null

#clean up some files from buildroot
rm -f $buildroot/mariadb/columnstore/etc/Doxyfile
for file in $buildroot/mariadb/columnstore/lib/*; do
	if [ -h $file ]; then
		rm -f $file
	fi
done

#temporarily clean up these BRM thingies
for file in dbrm script-fcns; do
	rm -f $buildroot/mariadb/columnstore/bin/$file
done

#clean up these bulkload scripts
for file in bulkload.sh cleanup.sh dbbuilder.sh dbload.sh cpimport.sh bulkloadp.sh; do
	rm -f $buildroot/mariadb/columnstore/bin/$file
done

rm -f $buildroot/mariadb/columnstore/lib/libidbboot.a
rm -f $buildroot/mariadb/columnstore/lib/libiberty.a

mkdir -p $HOME/rpm/BUILD $HOME/rpm/RPMS $HOME/rpm/SRPMS $HOME/rpm/SPECS $HOME/rpm/tmp

if [ ! -f $HOME/.rpmmacros ]; then
	cat > $HOME/.rpmmacros <<EOD
%_topdir $HOME/rpm
%_tmppath $HOME/rpm/tmp
# Change to 1 if you want to abort on unpackaged files
%_unpackaged_files_terminate_build 0
EOD
fi

#twiddle with the spec file

packager="support@mariadb.com"
tag=poc
buildinfo=`./build/docBuild $tag | (
read l
b="$l"
while read l; do
b="$b\\n$l"
done
echo $b )`

if [ ! $community ]; then
	cp ./build/columnstore.spec.in $HOME/rpm/SPECS/columnstore.spec
else
	cp ./build/columnstore.community.spec.in $HOME/rpm/SPECS/columnstore.spec
fi

sed -i  -e "s/@@PACKAGER@@/Packager: $packager/" \
	-e "s/@@VERSION@@/Version: $version/" \
	-e "s/@@RELEASE@@/Release: $release/" \
	-e "s?@@BUILDINFO@@?$buildinfo?" $HOME/rpm/SPECS/columnstore.spec

echo done.

echo -n "Building rpms..."

rpmbuild -ba $HOME/rpm/SPECS/columnstore.spec > /tmp/rpmbuild.out.$$ 2>&1

rc=$?
echo done.
if [ $verbose -gt 0 -o $rc -ne 0 ]; then
	cat /tmp/rpmbuild.out.$$
fi

rm -f /tmp/*.$$

exit $rc

