#!/usr/bin/env bash

changelogFile=${1:-CHANGELOG.md}

if [ ! -r "$changelogFile" ]; then
  echo "Unable to read file $changelogFile" >&2
  exit 1
fi

changelogWellFormed=1

# e.g. "## 1.12.3 (2016-10-26)"
VER_LINE_REGEX='^## [0-9]+\.[0-9]+\.[0-9]+(-ce)? \([0-9]+-[0-9]+-[0-9]+\)$'
while read -r line; do
  if ! [[ "$line" =~ $VER_LINE_REGEX ]]; then
    echo "Malformed changelog $changelogFile line \"$line\"" >&2
    changelogWellFormed=0
  fi
done < <(grep '^## ' $changelogFile)

if [[ "$changelogWellFormed" == "1" ]]; then
  echo "Congratulations!  Changelog $changelogFile is well-formed."
else
  exit 2
fi