#!/bin/sh

set -e
. ${POPHOME:-@POPHOME@}/lib/pop_conf_sh
tmp="/tmp/$$"
trap 'rm -f $tmp' 0
usage() {
cat >&2 <<END
Usage: $(basename $0)  -- baut und signiert das aktuelle Programm
    -s HOST   Rechner, auf dem du signieren kannst
    -k KEY    zu verwendender GPG-Schlüssel
    -n        nicht bauen (gehe davon aus, dass das schon passiert ist)
END
    exit 1
}

T="$(getopt "hk:ns:" "$@")" || usage
eval set -- "$T"
host=""
K=
NOBUILD=

if test $? != 0 ; then usage; fi
for i
do
    case "$i" in
    -h)
        usage ;;
    -s)
        shift; test -z "$host" || usage; host="$1"; shift ;;
    -k)
        shift; test -z "$K" || usage; K="-k$1"; shift ;;
    -n)
        shift; NOBUILD=1 ;;
    --)
        shift; break ;;
    esac
done

test -z "$*" || usage

if ! test -d debian ; then
	echo "Du bist nicht in einem Debian-Sourcepaket" >&2
fi

set -ex
A=$(dpkg --print-architecture)
P=$(dpkg-parsechangelog | sed -ne 's/^Source:\s*//p')
V=$(dpkg-parsechangelog | sed -ne 's/^Version:\s*//p' | sed -e 's/^[0-9][0-9]*://')

if test -z "$NOBUILD" ; then 
	if test -d .git || echo $V | grep -qs -- - ; then
		dpkg-buildpackage -rfakeroot -b -us -uc
	else
		dpkg-buildpackage -rfakeroot -us -uc
	fi
fi

CF="${P}_${V}_${A}.changes"
DF="${P}_${V}.dsc"
cd ..
test -f "$CF"

if test -n "$host"; then
	scp $CF $host:/tmp
	test ! -f $DF || scp $DF $host:/tmp
	ssh -X -t $host "cd /tmp; debsign $K $CF"
	scp $host:/tmp/$CF .
	test ! -f $DF || scp $host:/tmp/$DF .
else
	debsign $K $CF
fi
dput local $CF

exit $?

cat >/dev/null <<___ # to keep "dash -n" happy

=head1 Name

build_it -- baut das Debian-Paket, das im aktuellen Verzeichnis liegt,
signiert es, und lädt es auf Achmed hoch.

=head1 Zusammenfassung

	build_it [-s HOST]

=head2 Optionen

=over 4

=item C<-s HOST>

ein Rechner, auf dem du deinen GPG-Key liegen hast, damit du die Pakete
auch wirklich signieren kannst.

=back

=cut

___
