##// END OF EJS Templates
destmerge: extract logic based on branch heads in its own function...
destmerge: extract logic based on branch heads in its own function One of the main goal of having consolidated destination function is to allow extension to play with this logic. We extract sub logic to make is wrapping more practical.

File last commit:

r26148:7f49efca default
r26728:e8f1b728 default
Show More
builddeb
84 lines | 1.8 KiB | text/plain | TextLexer
#!/bin/sh -e
#
# Build a Mercurial debian package from the current repo
#
# Tested on Jessie (stable as of original script authoring.)
. $(dirname $0)/packagelib.sh
BUILD=1
CLEANUP=1
DEBVERSION=jessie
while [ "$1" ]; do
case "$1" in
--release )
shift
DEBVERSION="$1"
shift
;;
--cleanup )
shift
BUILD=
;;
--build )
shift
CLEANUP=
;;
--debbuilddir )
shift
DEBBUILDDIR="$1"
shift
;;
* )
echo "Invalid parameter $1!" 1>&2
exit 1
;;
esac
done
trap "if [ '$CLEANUP' ] ; then rm -r '$PWD/debian' ; fi" EXIT
set -u
if [ ! -d .hg ]; then
echo 'You are not inside a Mercurial repository!' 1>&2
exit 1
fi
gethgversion
control=debian/control
changelog=debian/changelog
if [ "$BUILD" ]; then
if [ -d debian ] ; then
echo "Error! debian control directory already exists!"
exit 1
fi
cp -r $PWD/contrib/debian debian
chmod -R 0755 debian
# This looks like sed -i, but sed -i behaves just differently enough
# between BSD and GNU sed that I gave up and did the dumb thing.
sed "s/__VERSION__/$version/" < $changelog > $changelog.tmp
date=$(date --rfc-2822)
sed "s/__DATE__/$date/" < $changelog.tmp > $changelog
rm $changelog.tmp
debuild -us -uc -b
if [ $? != 0 ]; then
echo 'debuild failed!'
exit 1
fi
fi
if [ "$CLEANUP" ] ; then
echo
OUTPUTDIR=${OUTPUTDIR:=packages/debian-$DEBVERSION}
find ../mercurial*.deb ../mercurial_*.build ../mercurial_*.changes \
-type f -newer $control -print0 | \
xargs -Inarf -0 mv narf "$OUTPUTDIR"
echo "Built packages for $version-$release:"
find "$OUTPUTDIR" -type f -newer $control -name '*.deb'
fi