#!/usr/bin/env bash

# updates changelog version indicated by release-plz

set -eEuo pipefail

### START HELPERS

function update_release_notes() {
    local package_dir="$1"
    local version="$2"
    local tag="$3"

    local changelog_file="${package_dir}/CHANGELOG.md"
    
    echo "Updating $tag using $changelog_file"

    local notes="$(sed -n "/^## ${version}$/,/^## /p" "$changelog_file" | sed '1d;$d')"

    gh release edit "$tag" --notes="$notes"
}

### END HELPERS

RELEASE_PLZ_RELEASES_JSON="$1"

specs="$(echo "$RELEASE_PLZ_RELEASES_JSON" | jq -r '.[] | "\(.package_name):\(.version):\(.tag)"')"

for spec in $specs; do
    name="$(echo "$spec" | cut -d: -f1)"
    version="$(echo "$spec" | cut -d: -f2)"
    tag="$(echo "$spec" | cut -d: -f3)"
    
    update_release_notes "." "$version" "$tag"
done
