sintonia/tools/changelog.sh

26 lines
616 B
Bash
Executable File

#!/usr/bin/env bash
set -u
error() {
echo >&2 "error: $*"
exit 1
}
command -v git > /dev/null || error "git command not found!"
command -v git-chglog > /dev/null || error "git-chglog command not found!"
changelog="CHANGELOG.md"
tag="${tag:-$(git describe --abbrev=0 --tags || error "could not extract latest tag")}"
if grep --quiet "<a name=\"$tag\"></a>" "$changelog"; then
error "changelog has already been generated for tag $tag!"
fi
cat <(git-chglog "$tag") "$changelog" > "$changelog.tmp"
mv "$changelog.tmp" "$changelog"
if command -v npx > /dev/null; then
npx prettier --write "$changelog"
fi