#!/usr/bin/env bash
set -euo pipefail
# gcloud authentication
gcloud auth configure-docker gcr.io/pingcap-public --quiet

# Ecr authentication
account_id=$(aws sts get-caller-identity --query Account --output text)
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin $account_id.dkr.ecr.us-west-2.amazonaws.com
ecr_registry="${account_id}.dkr.ecr.us-west-2.amazonaws.com"

#Check the changes from the last commit
version=$(git diff -U0 HEAD^ HEAD tidb_download_pkg.json | grep -o 'v[0-9].[0-9].[0-9]')

# Images from pubilic dockerhub
Images=(pingcap/tidb pingcap/tikv
	pingcap/br pingcap/pd pingcap/tidb-lightning
	pingcap/tidb-monitor-initializer pingcap/tiflash)

for image in "${Images[@]}"; do
	docker pull "$image:$version"
	tag="$(echo $image | cut -d '/' -f 2):$version"
	# ECR
	ecr_tag="$account_id.dkr.ecr.us-west-2.amazonaws.com/dbaas/infra-dev/$tag"
	docker tag "$image:$version" "$ecr_tag"
	docker push "$ecr_tag"

	# GCR
	gcr_tag="gcr.io/pingcap-public/dbaas/$tag"
	docker tag "$image:$version" "$gcr_tag"
	docker push "$gcr_tag"

done

filebeatImage=docker.elastic.co/beats/filebeat-oss:7.10.2
filebeatImageForSlowQueryLog=sabaping/filebeat-oss:8.0.0-slowquerylog-v1
filebeatTags=($account_id.dkr.ecr.us-west-2.amazonaws.com/dbaas/infra-dev/elastic/filebeat-oss:7.10.2
	gcr.io/pingcap-public/elastic/filebeat-oss:7.10.2)
filebeatForSlowQueryLogTags=($account_id.dkr.ecr.us-west-2.amazonaws.com/dbaas/infra-dev/elastic/filebeat-oss:8.0.0-slowquerylog-v1
	gcr.io/pingcap-public/elastic/filebeat-oss:8.0.0-slowquerylog-v1)

for filebeatTag in "${filebeatTags[@]}"; do
	docker pull $filebeatImage
	docker tag $filebeatImage $filebeatTag
	docker push $filebeatTag
done

for filebeatForSlowQueryLogTag in "${filebeatForSlowQueryLogTags[@]}"; do
	docker pull $filebeatImageForSlowQueryLog
	docker tag $filebeatImageForSlowQueryLog $filebeatForSlowQueryLogTag
	docker push $filebeatForSlowQueryLogTag
done
