dockerlib: extract initcontainer() method
This helps contain all the logic around creating containers.
--- a/contrib/dockerlib.sh Wed May 06 10:45:07 2015 -0400
+++ b/contrib/dockerlib.sh Wed May 06 10:45:51 2015 -0400
@@ -17,3 +17,19 @@
$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; }
}
+
+# Construct a container and leave its name in $CONTAINER for future use.
+function initcontainer() {
+ [ "$1" ] || { echo "Error: platform name must be specified"; exit 1; }
+
+ DFILE="$ROOTDIR/contrib/docker/$1"
+ [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; }
+
+ CONTAINER="hg-dockerrpm-$1"
+ DBUILDUSER=build
+ (
+ cat $DFILE
+ echo RUN groupadd $DBUILDUSER -g `id -g`
+ echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER
+ ) | $DOCKER build --tag $CONTAINER -
+}
--- a/contrib/dockerrpm Wed May 06 10:45:07 2015 -0400
+++ b/contrib/dockerrpm Wed May 06 10:45:51 2015 -0400
@@ -3,25 +3,14 @@
. $(dirname $0)/dockerlib.sh
BUILDDIR=$(dirname $0)
-ROOTDIR=$(cd $BUILDDIR/..; pwd)
+export ROOTDIR=$(cd $BUILDDIR/..; pwd)
checkdocker
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 -
+initcontainer $PLATFORM
RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM
contrib/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $*