#!/bin/bash
# ===============================================================================================================
# aws-oidc-setup.sh - Configura credenciales AWS via OIDC para Bitbucket Pipelines
# Descripción:
#       Exporta las variables necesarias para que AWS CLI y Terraform usen
#       el token OIDC de Bitbucket y asuman el rol IAM correspondiente.
#
# Uso:
#       source scripts/aws-oidc-setup.sh <dev|prod>
#
# Requiere:
#       - El step de bitbucket-pipelines.yml debe tener "oidc: true"
#       - AWS CLI moderno que soporte AWS_WEB_IDENTITY_TOKEN_FILE
# ===============================================================================================================

set -euo pipefail

ENV="${1:-dev}"

if [[ -z "${BITBUCKET_STEP_OIDC_TOKEN:-}" ]]; then
  echo "ERROR: BITBUCKET_STEP_OIDC_TOKEN no está definido."
  echo "Asegúrate de agregar 'oidc: true' al step en bitbucket-pipelines.yml"
  exit 1
fi

export AWS_WEB_IDENTITY_TOKEN_FILE="$(pwd)/web-identity-token"
printf '%s' "${BITBUCKET_STEP_OIDC_TOKEN}" > "${AWS_WEB_IDENTITY_TOKEN_FILE}"

if [[ "$ENV" == "prod" ]]; then
  export AWS_ROLE_ARN="arn:aws:iam::523761210517:role/BitbucketProyectosaccCICDRoleProd"
else
  export AWS_ROLE_ARN="arn:aws:iam::668889063715:role/BitbucketProyectosaccCICDRoleDev"
fi

export AWS_DEFAULT_REGION="mx-central-1"

echo "=== AWS OIDC Setup ==="
echo "Ambiente : $ENV"
echo "Role ARN : $AWS_ROLE_ARN"
echo "Region   : $AWS_DEFAULT_REGION"
echo "Token file: $AWS_WEB_IDENTITY_TOKEN_FILE"
echo "======================"
