#!/bin/bash

# Use manifest-tool to create the manifest, given the experimental
# "docker manifest" command isn't available yet on Docker Hub.
MANIFEST_TOOL_VERSION=$(curl -s https://api.github.com/repos/estesp/manifest-tool/releases/latest | grep 'tag_name' | cut -d\" -f4)
curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/$MANIFEST_TOOL_VERSION/manifest-tool-linux-amd64
chmod +x manifest-tool

# Generate the manifest file.
# Parameter 1 is the multi-arch image name, e.g. rss-bridge/rss-bridge:stable
function generate_manifest {
  cat > manifest-generated.yaml << EOF
image: $1
manifests:
  - image: $1-amd64
    platform:
      architecture: amd64
      os: linux
  - image: $1-arm32v7
    platform:
      architecture: arm
      os: linux
      variant: v7
  - image: $1-arm64v8
    platform:
      architecture: arm64
      os: linux
      variant: v8
EOF
}

echo "Pushing multi-arch manifest $IMAGE_NAME"
generate_manifest $IMAGE_NAME
./manifest-tool push from-spec manifest-generated.yaml