#!/usr/bin/env sh
set -eu

version="${FIERRO_HARNESS_VERSION:-latest}"
index_url="${FIERRO_HARNESS_INDEX_URL:-https://devpi.fierro.com.ar/root/fierro/+simple/}"

command -v curl >/dev/null 2>&1 || { printf '%s\n' 'curl es requerido.' >&2; exit 1; }
uv_cmd="$(command -v uv || true)"
if [ -z "$uv_cmd" ]; then
  curl -LsSf https://astral.sh/uv/install.sh | sh
  export PATH="${HOME}/.local/bin:${PATH}"
  uv_cmd="$(command -v uv || true)"
fi
[ -n "$uv_cmd" ] || { printf '%s\n' 'No se pudo instalar uv.' >&2; exit 1; }

package="fierro-harness"
if [ "$version" != latest ]; then
  package="fierro-harness==${version#v}"
fi
tool_bin_dir="$("$uv_cmd" tool dir --bin)"
"$uv_cmd" tool install --force --default-index "$index_url" --python 3.14 "$package"
"$uv_cmd" tool update-shell

run_harness() {
  "$tool_bin_dir/fierro-harness" "$@"
}

run_harness install
if ! command -v gcloud >/dev/null 2>&1; then
  run_harness setup --install gcloud --yes
fi
export PATH="${HOME}/.local/google-cloud-sdk/bin:${PATH}"
if ! command -v gog >/dev/null 2>&1; then
  run_harness setup --install gog --yes
fi
if ! run_harness secret auth-status >/dev/null 2>&1; then
  run_harness secret login --project fierro-harness
fi
if ! run_harness secret sync-opencode --project fierro-harness; then
  printf '%s\n' 'No se pudo sincronizar la credencial opcional de OpenCode; se continúa sin ella.' >&2
fi
if ! run_harness secret sync-mcp --project fierro-harness; then
  printf '%s\n' 'No se pudo sincronizar el MCP opcional de Zoho; se continúa sin él.' >&2
fi
if ! run_harness secret sync-gog --project fierro-harness; then
  printf '%s\n' 'No se pudo sincronizar el cliente OAuth opcional de gog; se continúa sin él.' >&2
fi
