57 lines
1.8 KiB
Bash
57 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
|
|
PRECHECK_WORK_DIR="${PRECHECK_WORK_DIR:-${ROOT_DIR}/.precheck}"
|
|
ENV_FILE="${PRECHECK_ENV_FILE:-${PRECHECK_WORK_DIR}/precheck.env}"
|
|
KEEP_PRECHECK="${KEEP_PRECHECK:-0}"
|
|
|
|
if [ -f "${ENV_FILE}" ]; then
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
. "${ENV_FILE}"
|
|
set +a
|
|
fi
|
|
|
|
PRECHECK_PROJECT="${PRECHECK_PROJECT:-rpki-precheck}"
|
|
PRECHECK_SERVER_COMPOSE_FILE="${PRECHECK_SERVER_COMPOSE_FILE:-${ROOT_DIR}/deploy/server/docker-compose.tcp.yml}"
|
|
PRECHECK_CLIENT_COMPOSE_FILE="${PRECHECK_CLIENT_COMPOSE_FILE:-${ROOT_DIR}/deploy/client/docker-compose.tcp.yml}"
|
|
COMPOSE_BIN=()
|
|
|
|
log() {
|
|
printf '[00_1_pre_check_cleanup] %s\n' "$*"
|
|
}
|
|
|
|
compose_run() {
|
|
local compose_file="$1"
|
|
shift
|
|
|
|
if [ "${#COMPOSE_BIN[@]}" -eq 0 ]; then
|
|
if docker compose version >/dev/null 2>&1; then
|
|
COMPOSE_BIN=(docker compose)
|
|
elif command -v docker-compose >/dev/null 2>&1 && docker-compose version >/dev/null 2>&1; then
|
|
COMPOSE_BIN=(docker-compose)
|
|
else
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
"${COMPOSE_BIN[@]}" --env-file "${ENV_FILE}" -p "${PRECHECK_PROJECT}" -f "${compose_file}" "$@"
|
|
}
|
|
|
|
if command -v docker >/dev/null 2>&1; then
|
|
log "stopping pre-check client compose stack"
|
|
[ -f "${PRECHECK_CLIENT_COMPOSE_FILE}" ] && compose_run "${PRECHECK_CLIENT_COMPOSE_FILE}" down --remove-orphans >/dev/null 2>&1 || true
|
|
log "stopping pre-check server compose stack"
|
|
[ -f "${PRECHECK_SERVER_COMPOSE_FILE}" ] && compose_run "${PRECHECK_SERVER_COMPOSE_FILE}" down --remove-orphans >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
if [ "${KEEP_PRECHECK}" = "1" ]; then
|
|
log "KEEP_PRECHECK=1, preserving ${PRECHECK_WORK_DIR}"
|
|
else
|
|
rm -rf "${PRECHECK_WORK_DIR}"
|
|
log "removed ${PRECHECK_WORK_DIR}"
|
|
fi
|