Mercurial > hg
view contrib/packaging/builddeb @ 51402:2e10ddbb9faa
phases: check secret presence the right way during discovery
There is an official function for this, lets use it.
This will prevent the code to break in the future while we refactor the phase
code.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 20 Feb 2024 17:17:54 +0100 |
parents | 4caf88845082 |
children |
line wrap: on
line source
#!/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 ROOTDIR=$(cd $(dirname $0)/../.. > /dev/null; pwd) BUILD=1 CLEANUP=1 DISTID=`(lsb_release -is 2> /dev/null | tr '[:upper:]' '[:lower:]') || echo debian` CODENAME=`lsb_release -cs 2> /dev/null || echo unknown` DEBFLAGS=-b cleanup() { if [ "$CLEANUP" ]; then rm -r "$ROOTDIR/debian"; fi } while [ "$1" ]; do case "$1" in --distid ) shift DISTID="$1" shift ;; --codename ) shift CODENAME="$1" shift ;; --cleanup ) shift BUILD= ;; --build ) shift CLEANUP= ;; --source-only ) shift DEBFLAGS=-S ;; * ) echo "Invalid parameter $1!" 1>&2 exit 1 ;; esac done cd "$ROOTDIR" trap 'cleanup' EXIT set -u if [ ! -d .hg ]; then printf "You are inside %s, which is not the root of a Mercurial repository\n" $(pwd) 1>&2 exit 1 fi gethgversion debver="$version" if [ -n "$type" ] ; then debver="$debver~$type" fi if [ -n "$distance" ] ; then debver="$debver+$distance-$CODENAME-$node" elif [ "$DEBFLAGS" = "-S" ] ; then # for building a ppa (--source-only) for a release (distance == 0), we need # to version the distroseries so that we can upload to launchpad debver="$debver~${CODENAME}1" fi control=debian/control changelog=debian/changelog if [ "$BUILD" ]; then if [ -d debian ] ; then printf "Error! debian control directory already exists at %s/debian\n" $(pwd) exit 1 fi cp -r "$ROOTDIR"/contrib/packaging/debian debian sed -i.tmp "s/__VERSION__/$debver/" $changelog sed -i.tmp "s/__DATE__/$(date --rfc-2822)/" $changelog sed -i.tmp "s/__CODENAME__/$CODENAME/" $changelog rm $changelog.tmp # remove the node from the version string SRCFILE="mercurial_$(echo $debver | sed "s,-$node,,").orig.tar.gz" "$ROOTDIR/hg" archive $SRCFILE mv $SRCFILE .. debuild -us -uc -i -I $DEBFLAGS if [ $? != 0 ]; then echo 'debuild failed!' exit 1 fi fi if [ "$CLEANUP" ] ; then echo OUTPUTDIR=${OUTPUTDIR:=packages/$DISTID-$CODENAME} mkdir -p "$OUTPUTDIR" find ../mercurial*.deb ../mercurial_*.build* ../mercurial_*.changes \ ../mercurial*.dsc ../mercurial*.gz \ -type f -newer $control -print0 2>/dev/null | \ xargs -Inarf -0 mv narf "$OUTPUTDIR" echo "Built packages for $debver:" find "$OUTPUTDIR" -type f -newer $control -name '*.deb' fi