#!/bin/sh

sudo echo "Cache credentials for sudo..."

function check_upstream() {
	what="$1"
	upstream=`wget -O - http://${what}.sourceforge.net/ -o /dev/null | grep "Latest Source Package" | cut -d\" -f2`
	
	echo "Upstream version of $what is $upstream"

	if echo $upstream | grep 'http://' ; then
		wget -nc -c $upstream
	else
		wget -nc -c http://${what}.sourceforge.net/$upstream
	fi
	
	upstream_ver=`echo $upstream | cut -d- -f2 | sed 's/\.tar.gz//'`
}

d=`pwd`
tmp="/tmp/est-latest"

function extract() {
	arc="$1"

	name=`echo $arc | cut -d- -f1`
	ver=`echo $arc | cut -d- -f2 | sed 's/\.tar.gz//'`

	if dpkg -l "$name" | grep "^ii" | grep "$ver" 2>&1 >/dev/null ; then
		echo "Skipping $name [$ver], allready installed."
		return
	fi

	mkdir $tmp
	cd $tmp

	opt=""
	if [ "$name" == "qdbm" ] ; then
		opt="--enable-gzip"
		echo "remove current hyperestraier because we will rebuild qdbm..."
		sudo apt-get remove -y hyperestraier
	fi

	echo "Extracting $name [$ver] to $tmp"
	tar xvfz "$d/$arc"
	cd *
	./configure
	make
	sudo checkinstall -y

	# build perl bindings?
	test -d perlnative && (
		echo "*** installing native perl bindings"
		cd perlnative
		./configure
		make
		sudo make install
	)

	cd $d
	sudo rm -Rf $tmp
}

dpkg -l | awk '{ print $2 }' | egrep '^lib(estraier|qdbm)' | xargs sudo apt-get remove  -y

qdbm_ver="$1"
est_ver="$2"

if [ -z "$qdbm_ver" ] ; then
	check_upstream 'qdbm'
	extract "qdbm-${upstream_ver}.tar.gz"
else
	extract `ls -m qdbm-${qdbm_ver}.tar.gz | head -1`
fi

if [ -z "$est_ver" ] ; then
	check_upstream 'hyperestraier'
	extract "hyperestraier-${upstream_ver}.tar.gz"
else
	extract `ls -m hyperestraier-${est_ver}.tar.gz | head -1`
fi
