| #!/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 |