#!/bin/bash
set -euo pipefail

SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"

image="amazon/amazon-ec2-instance-selector"

if git --no-pager diff --name-only HEAD^ HEAD | grep 'README.md'; then 
    token=$(curl -s -X POST \
        -H "Content-Type: application/json" \
        -d '{"username": "'"${DOCKERHUB_USERNAME}"'", "password": "'"${DOCKERHUB_PASSWORD}"'"}' \
        https://hub.docker.com/v2/users/login/ | jq -r .token)

    rcode=$(jq -n --arg msg "$(<$SCRIPTPATH/../README.md)" \
        '{"registry":"registry-1.docker.io","full_description": $msg }' | 
            curl -s -o /dev/stderr -L -w "%{http_code}" \
            https://hub.docker.com/v2/repositories/"${image}"/ \
                -d @- \
                -X PATCH \
                -H "Content-Type: application/json" \
                -H "Authorization: JWT ${token}")

    if [[ $rcode -ge 200 && $rcode -lt 300 ]]; then 
        echo "README sync to dockerhub completed successfully"
    else 
        echo "README sync to dockerhub failed"
        exit 1
    fi
else
    echo "README.md did not change in the last commit. Not taking any action."
fi
