#!/usr/bin/env bash set -euo pipefail # mock_val/repair_pipeline.sh # Purpose: # - Validation wrapper around the Python-native cluster repair logic. SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ROOT_DIR=$(cd "$SCRIPT_DIR/.." && pwd) SERVICE_NAMESPACE="" DB_NAMESPACE="" MODE="" CFG_PATH="" usage() { cat <<'USAGE' Usage: repair_pipeline.sh [-n|--namespace NS] [--db-namespace NS] [-m|--mode MODE] [--config PATH] [repair] USAGE } while [[ $# -gt 0 ]]; do case "$1" in -m|--mode) shift MODE="${1:-}" ;; -m=*|--mode=*) MODE="${1#*=}" ;; -n|--namespace) shift SERVICE_NAMESPACE="${1:-}" ;; -n=*|--namespace=*) SERVICE_NAMESPACE="${1#*=}" ;; --db-namespace) shift DB_NAMESPACE="${1:-}" ;; --db-namespace=*) DB_NAMESPACE="${1#*=}" ;; --config) shift CFG_PATH="${1:-}" ;; --config=*) CFG_PATH="${1#*=}" ;; repair) ;; -h|--help) usage exit 0 ;; *) usage exit 2 ;; esac shift done export PROLE_HOME="${PROLE_HOME:-$ROOT_DIR}" export PROLE_CONF="${PROLE_CONF:-${CFG_PATH:-$PROLE_HOME/conf}}" export PYTHONPATH="$ROOT_DIR${PYTHONPATH:+:$PYTHONPATH}" args=() if [[ -n "$SERVICE_NAMESPACE" ]]; then args+=("--namespace" "$SERVICE_NAMESPACE") fi if [[ -n "$DB_NAMESPACE" ]]; then args+=("--db-namespace" "$DB_NAMESPACE") fi if [[ -n "$MODE" ]]; then args+=("--mode" "$MODE") fi args+=("--config" "$PROLE_CONF") exec python3 -m installer.core.repair_pipeline_cli "${args[@]}"