#!/usr/bin/env bash

ECR_NAME_LIST=(
    "ows-abacus-contract"
    "ows-abacus-event"
    # "ows-abacus-state"
    "ows-ledger"
    "ows-payee"
    "ows-payment"
    "ows-royalties"
    # "ows-royalties-workflows"
    "lambda-abacus-snapshot-exchange-rates"
    "lambda-abacus-snapshot-contract"
    "lambda-abacus-snapshot-adjustments"
)
ECR_DEV="103233932089.dkr.ecr.us-east-1.amazonaws.com"
ECR_PROD="437795906767.dkr.ecr.us-east-1.amazonaws.com"

for ECR_NAME in "${ECR_NAME_LIST[@]}"; do
    echo "Starting: |$ECR_NAME|"

    # CHECK FOR EXISTING ECR REPO, OTHERWISE CREATE
    EXTANT_NAME=$(
        . .aws.dev.env && \
        aws ecr describe-repositories \
            --repository-name "$ECR_NAME" \
            --query "repositories[0].repositoryName" | tr -d '"'
    )
    if [[ -z "$EXTANT_NAME" ]]; then
        echo "Creating repository: |$ECR_NAME|"
        . .aws.dev.env
        aws ecr create-repository --repository-name "$ECR_NAME"
    fi

    # SET IMAGE NAMES
    IMAGE_NAME_DEV="${ECR_DEV}/${ECR_NAME}"
    IMAGE_NAME_PROD="${ECR_PROD}/${ECR_NAME}:latest"

    # ECR LOGIN - PROD
    . .aws.prod.env
    aws ecr get-login --no-include-email --region us-east-1 > /dev/null

    # PULL & TAG IMAGE
    docker pull "$IMAGE_NAME_PROD" > /dev/null
    docker tag "$IMAGE_NAME_PROD" "$IMAGE_NAME_DEV"

    # ECR LOGIN - DEV
    . .aws.dev.env
    aws ecr get-login-password --region us-east-1 | \
        docker login --username AWS --password-stdin "103233932089.dkr.ecr.us-east-1.amazonaws.com" > /dev/null
    # echo "PUSHING TO DEV"
    docker push "$IMAGE_NAME_DEV" > /dev/null

    docker rmi -f "$IMAGE_NAME_DEV" "$IMAGE_NAME_PROD" > /dev/null

done
