#!/usr/bin/env bash

if [[ -z "$GITHUB_USER" ]]; then
    echo "GITHUB_USER env var not set"
    exit 1
fi
if [[ -z "$GITHUB_ACCESS_TOKEN" ]]; then
    echo "GITHUB_ACCESS_TOKEN env var not set"
    exit 1
fi

for ((REPO_PAGE_NUM=1; REPO_PAGE_NUM<5; REPO_PAGE_NUM+=1)); do
    TMP_NAME_LIST=$(
        curl -s \
            -u "${GITHUB_USER}:${GITHUB_ACCESS_TOKEN}" \
            -H "Content-Type: application/json" \
            -H "Accept: application/vnd.github.v3+json" \
            "https://api.github.com/orgs/theorchard/repos?per_page=100&page=${REPO_PAGE_NUM}&sort=full_name&direction=desc" | \
                jq -r '.[].name'
    )
    TMP_TERRAFORM_NAME_LIST=($(echo "$TMP_NAME_LIST" | grep ^terraform))
    for MODULE_NAME in "${TMP_TERRAFORM_NAME_LIST[@]}"; do
        LATEST_VERSION_RAW=$(
            curl -s \
                -u "${GITHUB_USER}:${GITHUB_ACCESS_TOKEN}" \
                "https://api.github.com/repos/theorchard/${MODULE_NAME}/releases/latest" \
                -H "Accept: application/vnd.github.v4.full+json" | \
                    grep '"tag_name":' | sed "s/[,\" ]//g"
        )
        LATEST_VERSION=${LATEST_VERSION_RAW##tag_name:}
        if [[ -n "$LATEST_VERSION" ]]; then
            echo "${MODULE_NAME}:${LATEST_VERSION}"
        fi
    done
done
