Mercurial > hg
view contrib/dockerrpm @ 24640:685639f9430d
bundle20: move magic string into the class
This makes it easy to create a new bundler class that inherits from
the core one. This matches the way 'changegroup' packers work.
The main target is to allow HG2Y support in an extension to ease transition of
companies using the experimental protocol in production (yeah...) But I've no
doubt this will be useful when playing with a future HG21.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 06 Apr 2015 15:40:12 -0700 |
parents | 4c490626af13 |
children | 80c9e99d68e0 |
line wrap: on
line source
#!/bin/bash -e BUILDDIR=$(dirname $0) ROOTDIR=$(cd $BUILDDIR/..; pwd) if which docker.io >> /dev/null 2>&1 ; then DOCKER=docker.io elif which docker >> /dev/null 2>&1 ; then DOCKER=docker else echo "Error: docker must be installed" exit 1 fi $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; } $DOCKER version | grep -q "^Client version:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; } $DOCKER version | grep -q "^Server version:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; } PLATFORM="$1" [ "$PLATFORM" ] || { echo "Error: platform name must be specified"; exit 1; } shift # extra params are passed to buildrpm DFILE="$ROOTDIR/contrib/docker/$PLATFORM" [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; } CONTAINER="hg-dockerrpm-$PLATFORM" DBUILDUSER=build ( cat $DFILE echo RUN groupadd $DBUILDUSER -g `id -g` echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER ) | $DOCKER build --tag $CONTAINER - RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM contrib/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $* DSHARED=/mnt/shared $DOCKER run -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \ rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean $DOCKER run -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \ createrepo $DSHARED cat << EOF > $RPMBUILDDIR/mercurial.repo # Place this file in /etc/yum.repos.d/mercurial.repo [mercurial] name=Mercurial packages for $PLATFORM # baseurl=file://$RPMBUILDDIR/ baseurl=http://hg.example.com/build/$PLATFORM/ skip_if_unavailable=True gpgcheck=0 enabled=1 EOF echo echo "Build complete - results can be found in $RPMBUILDDIR"