#!/bin/sh

mustsetvar () {
	if [ "$2" = "" ]
	then
		echo >&2 "$0: unable to determine $1"
		exit 1
	else
		eval "$1=\"\$2\""
	fi
}

mustsetvar package "$(dpkg-parsechangelog | sed -ne 's/^Source: //p')"
mustsetvar version "$(dpkg-parsechangelog | sed -ne 's/^Version: //p')"
mustsetvar arch "$(dpkg-architecture -a${targetarch} -t${targetgnusystem} -qDEB_HOST_ARCH)"

dpkg-checkbuilddeps || sudo apt-get build-dep $package || exit 1

if test "x$1" = "x-i" ; then INST=1; shift; fi

if test -f /usr/local/bin/gpg-agent-start.sh ; then
	source /usr/local/bin/gpg-agent-start.sh
fi

sversion=`echo "$version" | perl -pe 's/^\d+://'`
pva="${package}_${sversion}_${arch}"
changes="../$pva.changes"

okf=/tmp/okb.$$
(
	# set -e  ## TODO
	echo + build
	debuild --no-lintian -eDEB_BUILD_OPTIONS -b -uc -us "$@" </dev/null
		# +G
	echo + lintian
	lintian -viI "$changes"

	touch $okf
) 2>&1 | less

test -f $okf || exit 1
rm -f $okf

cd `dirname $changes`
changes=`basename $changes`

if [ ! -r "$changes" ]
then echo "Can't read $changes!" >&2; exit 1; fi

debs="`perl -e '
@debs = ();
while (<>) {
    last if $infiles and /^[^ ]/;
    /^Files:/ and $infiles=1, next;
    next unless $infiles;
    / (\S*.deb)$/ and push @debs, $1;
}
print join(" ",@debs)' $changes`"

mv $changes $debs /var/tmp
cd /var/tmp
if test -n "$INST" ; then
	echo + install
	sudo debpkg -i $debs
fi
echo + :files:
echo /var/tmp/$changes
echo $debs

