#!/usr/bin/env bash set -euo pipefail [[ "${DEBUG_DEPLOY:-0}" = "1" ]] && set -x trap 'echo "[bootstrap-shared-network] error at line $LINENO" >&2' ERR : "${SSH_USER:?missing SSH_USER}" : "${SSH_HOST:?missing SSH_HOST}" REMOTE_TARGET="${SSH_USER}@${SSH_HOST}" DOCKER_SHARED_NETWORK="${DOCKER_SHARED_NETWORK:-sendico-net}" SSH_OPTS=( -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR ) if [[ "${DEBUG_DEPLOY:-0}" = "1" ]]; then SSH_OPTS+=(-vv) fi printf '[bootstrap-shared-network] target=%s network=%s\n' "$REMOTE_TARGET" "$DOCKER_SHARED_NETWORK" >&2 set +e ssh_output="$( ssh "${SSH_OPTS[@]}" "$REMOTE_TARGET" \ DOCKER_SHARED_NETWORK="$DOCKER_SHARED_NETWORK" bash -s 2>&1 <<'EOSSH' set -euo pipefail docker network inspect "$DOCKER_SHARED_NETWORK" >/dev/null 2>&1 || \ docker network create "$DOCKER_SHARED_NETWORK" EOSSH )" ssh_status=$? set -e if [[ $ssh_status -ne 0 ]]; then [[ -n "$ssh_output" ]] && printf '%s\n' "$ssh_output" >&2 exit "$ssh_status" fi [[ -n "$ssh_output" ]] && printf '%s\n' "$ssh_output"