126 lines
2.9 KiB
Bash
Executable File
126 lines
2.9 KiB
Bash
Executable File
#!/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
|