#!/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