From a762f3db05b0e5561c0b7ada843154173197d1f5 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Mon, 27 Oct 2014 11:40:09 +0000 Subject: Allow distbuild.configure to be enabled without requiring configuration Previously if you enabled distbuild.configure but didn't set all of the required variables, your deployment would fail. This has become much more annoying with the introduction of the build-system family of systems, which are indented to be suitable either as a local builder or part of a distbuild network. --- distbuild.configure | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/distbuild.configure b/distbuild.configure index d9b9fb8a..062aaecc 100644 --- a/distbuild.configure +++ b/distbuild.configure @@ -45,20 +45,21 @@ if [ -n "$DISTBUILD_GENERIC" ]; then exit 0 fi +# Set default values for these two options if they are unset, so that if the +# user specifies no distbuild config at all the configure extension exits +# without doing anything but does not raise an error. +DISTBUILD_CONTROLLER=${DISTBUILD_CONTROLLER-False} +DISTBUILD_WORKER=${DISTBUILD_WORKER-False} + +if [ "$DISTBUILD_CONTROLLER" = False -a "$DISTBUILD_WORKER" = False ]; then + exit 0 +fi + set -u # Check that all the variables needed are present: error_vars=false -if [ "x$DISTBUILD_WORKER" = "x" ]; then - echo "ERROR: DISTBUILD_WORKER needs to be defined." - error_vars=true -fi - -if [ "x$DISTBUILD_CONTROLLER" = "x" ]; then - echo "ERROR: DISTBUILD_CONTROLLER needs to be defined." - error_vars=true -fi if [ "x$TROVE_HOST" = "x" ]; then echo "ERROR: TROVE_HOST needs to be defined." -- cgit v1.2.1 From 946d6b530ebda661c4db0e28d8aba2570044941c Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Mon, 27 Oct 2014 12:50:35 +0000 Subject: Allow mason.configure to be enabled without requiring configuration If none of the MASON_ options are set then mason.configure will now do nothing, instead of raising an error. This is needed because mason.configure is enabled by default in the build-system. --- mason.configure | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/mason.configure b/mason.configure index d0abbf11..621d6a31 100644 --- a/mason.configure +++ b/mason.configure @@ -32,13 +32,41 @@ set -e -ROOT="$1" +########################################################################## +# Check variables +########################################################################## + +if [ -n "$MASON_GENERIC" ]; then + echo Not configuring Mason, it will be generic + exit 0 +fi + +if [ -z "$MASON_CLUSTER_MORPHOLOGY" -a \ + -z "$MASON_DEFINITIONS_REF" -a \ + -z "$MASON_DISTBUILD_ARCH" -a \ + -z "$MASON_TEST_HOST" ]; then + # No Mason options defined, do nothing. + exit 0 +fi + +if [ -z "$ARTIFACT_CACHE_SERVER" -o \ + -z "$CONTROLLERHOST" -o \ + -z "$MASON_CLUSTER_MORPHOLOGY" -o \ + -z "$MASON_DEFINITIONS_REF" -o \ + -z "$MASON_DISTBUILD_ARCH" -o \ + -z "$MASON_TEST_HOST" -o \ + -z "$TROVE_HOST" -o \ + -z "$TROVE_ID" ]; then + echo Some options required for Mason were defined, but not all. + exit 1 +fi ########################################################################## # Copy Mason files into root filesystem ########################################################################## +ROOT="$1" mkdir -p "$ROOT"/usr/lib/mason cp mason/mason.sh "$ROOT"/usr/lib/mason/mason.sh @@ -77,24 +105,6 @@ cp mason/mason-setup.service "$ROOT"/etc/systemd/system/mason-setup.service ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason-setup.service -########################################################################## -# Check variables -########################################################################## - -if [ -n "$MASON_GENERIC" ]; then - echo Not configuring Mason, it will be generic - exit 0 -fi - -if [ "$ARTIFACT_CACHE_SERVER" = "" \ - -o "$MASON_CLUSTER_MORPHOLOGY" = "" \ - -o "$MASON_DEFINITIONS_REF" = "" \ - -o "$MASON_DISTBUILD_ARCH" = "" \ - -o "$MASON_TEST_HOST" = "" ]; then - echo Not configuring as Mason, some options not defined - exit 1 -fi - ########################################################################## # Generate config variable shell snippet ########################################################################## -- cgit v1.2.1