#!/usr/bin/env bash

set -eo pipefail

DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR"

if [ -z "${POSTGRES_HOST}" ]; then
  echo 'POSTGRES_HOST env-var missing'
  exit 1
fi

if [ -z "${POSTGRES_USER}" ]; then
  echo 'POSTGRES_USER env-var missing'
  exit 1
fi

if [ -z "${POSTGRES_PASSWORD}" ]; then
  echo 'POSTGRES_PASSWORD env-var missing'
  exit 1
fi

if [ -z "${ECR_ACCOUNT_ID}" ]; then
  echo 'ECR_ACCOUNT_ID env-var missing'
  exit 1
fi

if [ -z "${GIT_COMMIT}" ]; then
  echo 'GIT_COMMIT env-var missing'
  exit 1
fi

ECR_REGISTRY="${ECR_ACCOUNT_ID}.dkr.ecr.${AWS_REGION:-us-east-1}.amazonaws.com"
ECR_IMAGE="${ECR_REGISTRY}/songwhip-api:${GIT_COMMIT}"

echo 'Logging in to ECR'
aws ecr get-login-password --region "${AWS_REGION:-us-east-1}" | docker login --username AWS --password-stdin "${ECR_REGISTRY}"

echo 'Pulling image'
docker pull "${ECR_IMAGE}"

docker run \
  --network host \
  -e PORT=NOT_REQUIRED \
  -e SONGWHIP_LOOKUP_URL=NOT_REQUIRED \
  -e POSTGRES_PORT=5432 \
  -e POSTGRES_DB=songwhip_api \
  -e "POSTGRES_HOST=${POSTGRES_HOST}" \
  -e "POSTGRES_USER=${POSTGRES_USER}" \
  -e "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" \
  -e "POSTGRES_SSL=true" \
  "${ECR_IMAGE}" \
  ./migrations/scripts/up.sh
