#!/usr/bin/env bash

PREVIOUS_VERSION=$1
CURRENT_VERSION=$2

if [ "$#" -ne 2 ]; then
    cat <<-INFO
NAME:
  generate-changelog - Generate changelog relative to a given version

USAGE:
  generate-changelog PREVIOUS_VERSION CURRENT_VERSION

EXAMPLE:
  generate-changelog 6.2.0 6.3.0
INFO

    exit 1
fi

echo "## ${CURRENT_VERSION}" > /tmp/new_changelog
git --no-pager log --grep \[.*\d*\] v$PREVIOUS_VERSION..v$CURRENT_VERSION --pretty='format:* %s' >> /tmp/new_changelog

if [ $? -eq 0 ]; then
  old_changelog=CHANGELOG.md.old

  echo $'\n' >> /tmp/new_changelog
  cat CHANGELOG.md >> /tmp/new_changelog

  mv CHANGELOG.md $old_changelog
  mv /tmp/new_changelog CHANGELOG.md

  echo "Successfully generated new CHANGELOG.md"
  echo "Old one available at $old_changelog"
else
  echo "Generating Changelog Failed"
fi