#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" DEBUG_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" REPO_ROOT="$(cd "$DEBUG_ROOT/../../.." && pwd)" ENV_FILE="$DEBUG_ROOT/.env" source "$REPO_ROOT/scripts/common/build_user.sh" load_build_user if [[ -f "$ENV_FILE" ]]; then set -a # shellcheck disable=SC1090 source "$ENV_FILE" set +a fi SYS_DEBUG_NETWORK_NAME=${SYS_DEBUG_NETWORK_NAME:-argus-debug-net} SYS_DEBUG_NETWORK_SUBNET=${SYS_DEBUG_NETWORK_SUBNET:-172.30.0.0/16} SYS_DEBUG_NETWORK_GATEWAY=${SYS_DEBUG_NETWORK_GATEWAY:-172.30.0.1} SYS_DEBUG_PROJECT_NAME=${SYS_DEBUG_PROJECT_NAME:-argus-debug} SYS_DEBUG_CONTAINER_PREFIX=${SYS_DEBUG_CONTAINER_PREFIX:-argus-debug} SYS_DEBUG_PRIVATE_CORE=${SYS_DEBUG_PRIVATE_CORE:-$DEBUG_ROOT/private} SYS_DEBUG_PRIVATE_NODEA=${SYS_DEBUG_PRIVATE_NODEA:-$DEBUG_ROOT/private-nodea} SYS_DEBUG_PRIVATE_NODEB=${SYS_DEBUG_PRIVATE_NODEB:-$DEBUG_ROOT/private-nodeb} SYS_DEBUG_TMP_DIR=${SYS_DEBUG_TMP_DIR:-$DEBUG_ROOT/tmp} ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133} ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015} SYS_DEBUG_NODEA_HOST=${SYS_DEBUG_NODEA_HOST:-dev-yyrshare-nbnyx10-cp2f-pod-0} SYS_DEBUG_NODEB_HOST=${SYS_DEBUG_NODEB_HOST:-dev-yyrshare-uuuu10-ep2f-pod-0} HOST_A="$SYS_DEBUG_NODEA_HOST" HOST_B="$SYS_DEBUG_NODEB_HOST" COMPOSE_FILE="$DEBUG_ROOT/docker-compose.yml" abs_path() { python3 - "$1" <<'PY' import os, sys path = sys.argv[1] print(os.path.abspath(path)) PY } ensure_command() { local cmd="$1" if ! command -v "$cmd" >/dev/null 2>&1; then echo "[ERR] Required command '$cmd' not found" >&2 exit 1 fi } require_docker() { ensure_command docker } compose() { require_docker local bin if docker compose version >/dev/null 2>&1; then bin=(docker compose) else bin=(docker-compose) fi "${bin[@]}" -p "$SYS_DEBUG_PROJECT_NAME" -f "$COMPOSE_FILE" "$@" } ensure_paths_defined() { local missing=() for name in SYS_DEBUG_PRIVATE_CORE SYS_DEBUG_PRIVATE_NODEA SYS_DEBUG_PRIVATE_NODEB SYS_DEBUG_TMP_DIR; do if [[ -z "${!name:-}" ]]; then missing+=("$name") fi done if (( ${#missing[@]} > 0 )); then echo "[ERR] Missing required environment variables: ${missing[*]}" >&2 echo " Run 01_bootstrap.sh first." >&2 exit 1 fi } ensure_env_file() { if [[ ! -f "$ENV_FILE" ]]; then echo "[ERR] Missing .env at $ENV_FILE. Run 01_bootstrap.sh first." >&2 exit 1 fi } log() { echo "[INFO] $*" } TMP_DIR="$SYS_DEBUG_TMP_DIR" mkdir -p "$TMP_DIR"