#!/usr/bin/env bash
set -euo pipefail

VENDOR=${VENDOR:-""}
PLATFORMS=${PLATFORMS:-"linux/amd64"}
IMG=${IMG:-"552185537300.dkr.ecr.us-west-2.amazonaws.com/agent-control-server:latest"}
ROOT=$(cd $(dirname ${BASH_SOURCE[0]})/../../../ && pwd)
cd ${ROOT}

# Get git info
GIT_HASH=$(git rev-parse HEAD)
GIT_BRANCH=$(git branch --show-current)

# Prepare vendor directory
make vendor
go mod vendor

# Convert PLATFORMS comma-separated to docker buildx format
IFS=',' read -ra PLATFORM_ARRAY <<< "$PLATFORMS"
PLATFORM_ARGS=""
for platform in "${PLATFORM_ARRAY[@]}"; do
  PLATFORM_ARGS="$PLATFORM_ARGS --platform $platform"
done

# Build and push using multi-arch Dockerfile
docker buildx build \
  --file build/package/agent-control-server-d/Dockerfile \
  --build-arg VENDOR=${VENDOR} \
  --build-arg GIT_HASH=${GIT_HASH} \
  --build-arg GIT_BRANCH=${GIT_BRANCH} \
  $PLATFORM_ARGS \
  --tag ${IMG} \
  --push \
  .
