#!/usr/bin/env bash set -euo pipefail ACTION="${1:-status}" ROOT="${CONTEXT_CASE_RUNTIME_ROOT:-/srv/mesavault/edge-oee-ucepsa}" CONTAINER="${CONTEXT_CASE_CONTAINER:-mv_ucepsa_context_review_case_builder}" NETWORK="${CONTEXT_CASE_NETWORK:-mv_ucepsa_net}" INTERVAL="${CONTEXT_CASE_INTERVAL_S:-15}" POSTGRES_CONTAINER="${CONTEXT_CASE_POSTGRES_CONTAINER:-mv_ucepsa_postgres_hot}" TENANT_OVERRIDE="${CONTEXT_CASE_TENANT_OVERRIDE:-ucepsa}" SITE_OVERRIDE="${CONTEXT_CASE_SITE_OVERRIDE:-ucepsa_onpremise}" PGHOST_OVERRIDE="${CONTEXT_CASE_PGHOST_OVERRIDE:-mv_ucepsa_postgres_hot}" cd "$ROOT" IMAGE="$( docker inspect \ mv_ucepsa_odoo_order_state_pg_sink \ --format '{{.Config.Image}}' )" PGDATABASE_OVERRIDE="${CONTEXT_CASE_PGDATABASE_OVERRIDE:-$( docker inspect "$POSTGRES_CONTAINER" \ --format '{{range .Config.Env}}{{println .}}{{end}}' \ | sed -n 's/^POSTGRES_DB=//p' \ | head -n 1 )}" if [[ -z "$PGDATABASE_OVERRIDE" ]]; then echo "ERROR: no se pudo determinar POSTGRES_DB." >&2 exit 1 fi common_args=( --network "$NETWORK" --env-file .env -e "TENANT_OVERRIDE=$TENANT_OVERRIDE" -e "SITE_OVERRIDE=$SITE_OVERRIDE" -e "PGHOST=$PGHOST_OVERRIDE" -e "PGDATABASE=$PGDATABASE_OVERRIDE" -v "$ROOT:/app:ro" -w /app --entrypoint python ) start_builder() { docker rm -f "$CONTAINER" \ >/dev/null 2>&1 || true docker run -d \ --name "$CONTAINER" \ --restart unless-stopped \ "${common_args[@]}" \ "$IMAGE" \ tools/context_review_case_builder.py \ --watch \ --interval "$INTERVAL" docker ps \ --format 'table {{.Names}}\t{{.Status}}' \ | grep -E "$CONTAINER|NAMES" } run_builder_once() { docker run --rm -i \ "${common_args[@]}" \ "$IMAGE" \ tools/context_review_case_builder.py \ --once } run_builder_dry() { docker run --rm -i \ "${common_args[@]}" \ "$IMAGE" \ tools/context_review_case_builder.py \ --once \ --dry-run } run_admin() { shift docker run --rm -i \ "${common_args[@]}" \ "$IMAGE" \ tools/context_review_case_admin.py \ "$@" } case "$ACTION" in start) start_builder ;; stop) docker stop "$CONTAINER" ;; restart) docker rm -f "$CONTAINER" \ >/dev/null 2>&1 || true start_builder ;; status) docker ps -a \ --format 'table {{.Names}}\t{{.Status}}' \ | grep -E "$CONTAINER|NAMES" ;; logs) docker logs --tail 200 -f "$CONTAINER" ;; once) run_builder_once ;; dry-run) run_builder_dry ;; admin) run_admin "$@" ;; *) echo \ "Uso: $0 {start|stop|restart|status|logs|once|dry-run|admin ...}" \ >&2 exit 2 ;; esac