diff options
Diffstat (limited to 'aux/checks/changelog.sh')
-rwxr-xr-x | aux/checks/changelog.sh | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/aux/checks/changelog.sh b/aux/checks/changelog.sh new file mode 100755 index 0000000..ee10549 --- /dev/null +++ b/aux/checks/changelog.sh @@ -0,0 +1,54 @@ +#!/bin/sh +set -eu + + +while getopts 'h' flag; do + case "$flag" in + h) + usage + help + exit + ;; + *) + usage >&2 + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + +. aux/lib.sh + + +HOMEPAGE_LINK="Changelog for [$NAME](https://$TLD/$NAME/en/)." + +if ! grep -qF "$HOMEPAGE_LINK" CHANGELOG.md; then + echo "Missing link to homepage in CHANGELOG.md:" >&2 + echo "$HOMEPAGE_LINK" + exit 1 +fi + +assert() { + DATE="$1" + VVERSION="$2" + VERSION="${2#v}" + CHANGELOG_ENTRY="$(printf \ + '# [%s](https://%s/git/%s/commit/?id=%s) - %s' \ + "$VERSION" "$TLD" "$NAME" "$VVERSION" "$DATE")" + if ! grep -qF "$CHANGELOG_ENTRY" CHANGELOG.md; then + echo "Missing '$CHANGELOG_ENTRY' entry from CHANGELOG.md" >&2 + exit 1 + fi +} + +for VVERSION in $(git tag); do + DATE="$(git log -1 --format=%ad --date=short "$VVERSION")" + assert "$DATE" "$VVERSION" +done + +# FIXME +# "$@" represents a list of tags to be also included in the verification. +for VVERSION in "$@"; do + DATE="$(date '+%Y-%m-%d')" + assert "$DATE" "$VVERSION" +done |