dockerdeb
46 lines
| 1.4 KiB
| text/plain
|
TextLexer
Gregory Szorc
|
r38024 | #!/bin/bash -eu | ||
Gregory Szorc
|
r38025 | . $(dirname $0)/packagelib.sh | ||
Gregory Szorc
|
r38024 | |||
BUILDDIR=$(dirname $0) | ||||
export ROOTDIR=$(cd $BUILDDIR/../.. > /dev/null; pwd) | ||||
DISTID="$1" | ||||
CODENAME="$2" | ||||
PLATFORM="$1-$2" | ||||
shift; shift # extra params are passed to build process | ||||
OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM} | ||||
Gregory Szorc
|
r38476 | CONTAINER=hg-docker-$PLATFORM | ||
Matt Harbison
|
r46582 | TZ=`ls -la /etc/localtime | cut -d/ -f7-9` | ||
Gregory Szorc
|
r38024 | |||
Gregory Szorc
|
r38476 | DOCKER=$($BUILDDIR/hg-docker docker-path) | ||
Gregory Szorc
|
r38477 | $BUILDDIR/hg-docker build \ | ||
Matt Harbison
|
r46582 | --build-arg TZ=$TZ \ | ||
Gregory Szorc
|
r38477 | --build-arg CODENAME=$CODENAME \ | ||
$BUILDDIR/docker/$DISTID.template \ | ||||
$CONTAINER | ||||
Gregory Szorc
|
r38024 | |||
# debuild only appears to be able to save built debs etc to .., so we | ||||
# have to share the .. of the current directory with the docker | ||||
# container and hope it's writable. Whee. | ||||
Gregory Szorc
|
r38033 | dn=$(basename $ROOTDIR) | ||
Gregory Szorc
|
r38024 | |||
Matt Harbison
|
r46580 | if [[ -z "${HG_DOCKER_OWN_USER:-}" ]]; then | ||
DBUILDUSER=build | ||||
else | ||||
DBUILDUSER="$(id -u):$(id -g)" | ||||
fi | ||||
Gregory Szorc
|
r38475 | |||
Gregory Szorc
|
r38024 | if [ $(uname) = "Darwin" ] ; then | ||
$DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \ | ||||
sh -c "cd /mnt/$dn && make clean && make local" | ||||
fi | ||||
Gregory Szorc
|
r38033 | $DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR/..:/mnt $CONTAINER \ | ||
Gregory Szorc
|
r38026 | sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/packaging/builddeb --build --distid $DISTID --codename $CODENAME $@" | ||
Gregory Szorc
|
r38804 | (cd $ROOTDIR && contrib/packaging/builddeb --cleanup --distid $DISTID --codename $CODENAME) | ||
Gregory Szorc
|
r38024 | if [ $(uname) = "Darwin" ] ; then | ||
$DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \ | ||||
sh -c "cd /mnt/$dn && make clean" | ||||
fi | ||||