#!/usr/bin/env bash
set -euo pipefail
ENV="${1:-local}"
MEMBER="${2:-examples/task-api}"
MODE="${3:-}"
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
source scripts/env.sh
CONFIG_DIR="$ROOT/$MEMBER/config"
COMMON="$CONFIG_DIR/application.toml"
PROFILE="$CONFIG_DIR/application-$ENV.toml"
if [[ "$MODE" != "--run-only" ]]; then
echo "[serve] building (env=$ENV, member=$MEMBER)"
cjpm build
[[ -f "$COMMON" ]] || { echo "[serve] missing common config: $COMMON" >&2; exit 1; }
[[ -f "$PROFILE" ]] || { echo "[serve] missing profile for env='$ENV': $PROFILE" >&2; exit 1; }
echo "[serve] config ok: $(basename "$COMMON") + $(basename "$PROFILE")"
fi
if [[ "$MODE" == "--build-only" ]]; then
exit 0
fi
BIN_NAME="$(basename "$MEMBER" | tr '-' '_')"
BIN="$ROOT/target/release/bin/$BIN_NAME"
[[ -x "$BIN" ]] || { echo "[serve] binary not found: $BIN (run build first)" >&2; exit 1; }
echo "[serve] running (env=$ENV) from $CONFIG_DIR"
cd "$CONFIG_DIR"
exec "$BIN" --env="$ENV"