46 lines
549 B
Bash
46 lines
549 B
Bash
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
tag="${1:-}"
|
|
|
|
if [ -z "$tag" ]; then
|
|
echo "Missing release tag argument (expected vX.Y.Z)."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f CHANGELOG.md ]; then
|
|
echo "CHANGELOG.md not found."
|
|
exit 1
|
|
fi
|
|
|
|
version="${tag#v}"
|
|
|
|
awk -v version="$version" '
|
|
BEGIN {
|
|
in_section = 0
|
|
started = 0
|
|
}
|
|
/^## / {
|
|
if (in_section == 1) {
|
|
exit
|
|
}
|
|
|
|
if (index($0, version) > 0) {
|
|
in_section = 1
|
|
started = 1
|
|
print $0
|
|
next
|
|
}
|
|
}
|
|
{
|
|
if (in_section == 1) {
|
|
print $0
|
|
}
|
|
}
|
|
END {
|
|
if (started == 0) {
|
|
exit 2
|
|
}
|
|
}
|
|
' CHANGELOG.md
|