#!/bin/bash
set -e
# Restore the original password
ORIGINAL_PASSWORD=$(echo "${SERVERLESS_CLUSTER_PASSWORD}" | sed 's/\\\$/\$/g' | sed 's/\\\!/\!/g' | sed 's/\\\^/\^/g')

# Configure AWS CLI
CREDENTIALS=$(aws sts assume-role \
  --role-arn "arn:aws:iam::841162690310:role/AssumeBedrockRole" \
  --role-session-name "${USER_UNIQUE_TAG}-422-session" \
  --duration-seconds 7200)

AWS_ACCESS_KEY_ID=$(echo $CREDENTIALS | jq -r '.Credentials.AccessKeyId')
AWS_SECRET_ACCESS_KEY=$(echo $CREDENTIALS | jq -r '.Credentials.SecretAccessKey')
AWS_SESSION_TOKEN=$(echo $CREDENTIALS | jq -r '.Credentials.SessionToken')

# Creating the database if it doesn't exist
echo "Creating the database if it doesn't exist..."
cat > ~/.my.cnf <<EOF
[client]
host=${SERVERLESS_CLUSTER_HOST}
port=${SERVERLESS_CLUSTER_PORT}
user='${SERVERLESS_CLUSTER_USERNAME}'
password='${ORIGINAL_PASSWORD}'
EOF

chmod 600 ~/.my.cnf

mysql -e "CREATE DATABASE IF NOT EXISTS \`${SERVERLESS_CLUSTER_DATABASE_NAME}\`;"

# Clone the repository
echo "Cloning repository..."
git clone https://github.com/Icemap/tidb-lab-unify-storage.git
cd tidb-lab-unify-storage

# Write .env
echo "Writing .env file..."
cat > .env <<EOF
SERVERLESS_CLUSTER_HOST=${SERVERLESS_CLUSTER_HOST}
SERVERLESS_CLUSTER_PORT=${SERVERLESS_CLUSTER_PORT}
SERVERLESS_CLUSTER_USERNAME='${SERVERLESS_CLUSTER_USERNAME}'
SERVERLESS_CLUSTER_PASSWORD='${ORIGINAL_PASSWORD}'
SERVERLESS_CLUSTER_DATABASE_NAME='${SERVERLESS_CLUSTER_DATABASE_NAME}'
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
EOF

# Run Docker compose
echo "Starting Docker compose..."
sudo docker compose up -d