--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/packaging/dockerlib.sh Sat May 12 10:33:11 2018 -0700
@@ -0,0 +1,42 @@
+#!/bin/sh -eu
+
+# This function exists to set up the DOCKER variable and verify that
+# it's the binary we expect. It also verifies that the docker service
+# is running on the system and we can talk to it.
+function checkdocker() {
+ 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 -Eq "^Client( version)?:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
+ $DOCKER version | grep -Eq "^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/packaging/docker/$1"
+ [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; }
+
+ CONTAINER="hg-dockerrpm-$1"
+ DBUILDUSER=build
+ (
+ cat $DFILE
+ if [ $(uname) = "Darwin" ] ; then
+ # The builder is using boot2docker on OS X, so we're going to
+ # *guess* the uid of the user inside the VM that is actually
+ # running docker. This is *very likely* to fail at some point.
+ echo RUN useradd $DBUILDUSER -u 1000
+ else
+ echo RUN groupadd $DBUILDUSER -g `id -g` -o
+ echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER -o
+ fi
+ ) | $DOCKER build --build-arg http_proxy --build-arg https_proxy --tag $CONTAINER -
+}