#!/bin/bash
# Wrapper WP-CLI per lo staging CNMA (Docker su Hetzner).
# Legge le credenziali DB al volo da /opt/stacks/staging-cnma/docker-compose.yml
# (fonte unica, niente password duplicata qui) — se cambiano, questo wrapper
# si aggiorna da solo senza bisogno di editarlo.
#
# Uso identico a un wp-cli locale, es.:
#   wp-cnma plugin list --fields=name,status,version
#   wp-cnma post list --post_type=corso --fields=ID,post_title
#   cat script.php | wp-cnma eval-file -
#   wp-cnma db query "SELECT id,name,active FROM wp_snippets"
set -euo pipefail

COMPOSE_FILE="/opt/stacks/staging-cnma/docker-compose.yml"
NETWORK="staging-cnma_internal"
# Volume letto dal container REALMENTE in esecuzione (non dal nome dichiarato nel
# compose file) — evita che il wrapper resti agganciato a un volume abbandonato
# dopo una ricostruzione/rename (successo il 09/07: puntava ancora a _v1 dopo
# il passaggio a _v2, mostrando la versione WP sbagliata).
VOLUME=$(docker inspect staging-cnma-wp --format '{{ range .Mounts }}{{ if eq .Destination "/var/www/html" }}{{ .Name }}{{ end }}{{ end }}')

DB_NAME=$(grep -m1 'MYSQL_DATABASE:' "$COMPOSE_FILE" | awk '{print $2}')
DB_USER=$(grep -m1 'MYSQL_USER:' "$COMPOSE_FILE" | awk '{print $2}')
DB_PASS=$(grep -m1 'MYSQL_PASSWORD:' "$COMPOSE_FILE" | awk '{print $2}')

docker run --rm -i --user root \
  --network "$NETWORK" \
  -v "$VOLUME":/var/www/html \
  -e WORDPRESS_DB_HOST=staging-cnma-db \
  -e WORDPRESS_DB_NAME="$DB_NAME" \
  -e WORDPRESS_DB_USER="$DB_USER" \
  -e WORDPRESS_DB_PASSWORD="$DB_PASS" \
  wordpress:cli wp "$@" --allow-root --path=/var/www/html
