#!/bin/sh

# usage: debian/build-deb [changelog.Debian entry]

initialize() {
	[ -x debian/rules -a -f src/galeon.h ] || {
		echo "This script must be run in Galeon source dir under which there's also debian/ dir"
		exit 1
	}
	debchange=/usr/bin/debchange
	fakeroot=/usr/bin/fakeroot
	[ -x $debchange ] || {
		echo "$debchange not found, install devscripts package."
		exit 1
	}
	[ -x $fakeoot ] || {
		echo "$fakeoot not found, install fakeroot package."
		exit 1
	}
}

versions() {
	changelog="New build."
	if [ -n "$1" ]; then
		if [ "$1" = "--no-cvs" ]; then
			nocvs=1
			shift
		else
			nocvs=0
		fi
		[ -n "$1" ] && changelog=$*
	fi

	upstream_version="`grep AM_INIT_AUTOMAKE configure.in | cut -d" " -f2 | cut -d\) -f1`"
	old_debian_version=`head -1 debian/changelog | cut -d- -f3 | cut -d\) -f1`
	old_upstream_version=`head -1 debian/changelog | cut -d- -f1 | cut -d\( -f2`
	if [ -f CVS/Root ]; then
		upstream_version="$upstream_version+"
		debian_version="0.`date +%Y%m%d`"
		version="$upstream_version-$debian_version-0"
		if [ $old_upstream_version = $upstream_version -a $old_debian_version = $debian_version ]; then
			changelog_command="$debchange -i $changelog"
		else
			changelog_command="$debchange -v $version $changelog"
		fi
	else
		debian_version="0.0"
		version="$upstream_version-$debian_version"
		if [ $old_upstream_version = $upstream_version ]; then
			changelog_command="$debchange -i $changelog"
		else
			changelog="New upstream release."
			changelog_command="$debchange -v $version $changelog"
		fi
	fi
}

update_changelog () {
	$changelog_command || {
		echo "Couldn't update debian/changelog entry."
		exit 1
	}
}

build() {
	[ -x /usr/lib/mozilla-cvs/mozilla-bin -a "$nocvs" = 0 ] && cvs=1
	if $fakeroot debian/rules binary MOZILLACVS=$cvs; then
		rm -f debian/build-failed
		echo "Build successful."
	else
		echo $version >debian/build-failed
		echo "Build failed"
	fi
}

# main()
initialize
versions $*
if [ ! -f debian/build-failed ]; then
	update_changelog
else
	failed_version=`cat debian/build-failed`
	if [ $failed_version != $version ]; then
		rm -f debian/build-failed
		update_changelog
	fi	
fi
build
