[PATCH 1 of 6 packaging] dockerlib: start extracting common functions for setting up docker

Augie Fackler raf at durin42.com
Fri May 8 12:10:04 CDT 2015


# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1430923507 14400
#      Wed May 06 10:45:07 2015 -0400
# Node ID 31cf06e694f031298e22adbdf202e7e1ae378881
# Parent  17ba4ccd20b48511b3d06ab47fb1b2faf31410d7
dockerlib: start extracting common functions for setting up docker

I'm about to start interacting with docker for debian packaging too,
so it's time to centralize this so that any bugfixes I figure out
apply to both codepaths.

diff --git a/contrib/dockerlib.sh b/contrib/dockerlib.sh
new file mode 100644
--- /dev/null
+++ b/contrib/dockerlib.sh
@@ -0,0 +1,19 @@
+#!/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 -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; }
+}
diff --git a/contrib/dockerrpm b/contrib/dockerrpm
--- a/contrib/dockerrpm
+++ b/contrib/dockerrpm
@@ -1,20 +1,11 @@
 #!/bin/bash -e
 
+. $(dirname $0)/dockerlib.sh
+
 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; }
+checkdocker
 
 PLATFORM="$1"
 [ "$PLATFORM" ] || { echo "Error: platform name must be specified"; exit 1; }


More information about the Mercurial-devel mailing list