diff options
author | EuAndreh <eu@euandre.org> | 2021-07-27 12:51:36 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-07-27 12:51:36 -0300 |
commit | 3bceeb4da5ec953309bbc3e61d04f078198966d2 (patch) | |
tree | c30ba0fd9485a88f45bdd91d3784630f9e9fa950 /aux/workflow/assert-changelog.sh | |
parent | TODOs.md: Dump links on Scratch (diff) | |
download | gistatic-3bceeb4da5ec953309bbc3e61d04f078198966d2.tar.gz gistatic-3bceeb4da5ec953309bbc3e61d04f078198966d2.tar.xz |
aux/: Update, adjust Makefile
Diffstat (limited to 'aux/workflow/assert-changelog.sh')
-rwxr-xr-x | aux/workflow/assert-changelog.sh | 60 |
1 files changed, 55 insertions, 5 deletions
diff --git a/aux/workflow/assert-changelog.sh b/aux/workflow/assert-changelog.sh index 8e81f1f..ca86407 100755 --- a/aux/workflow/assert-changelog.sh +++ b/aux/workflow/assert-changelog.sh @@ -1,14 +1,64 @@ #!/bin/sh set -eu -PROJECT="$1" +TLD="$(cat aux/tld.txt)" +PROJECT_UC= +while getopts 'n:N:' flag; do + case "$flag" in + n) + PROJECT="$OPTARG" + ;; + N) + PROJECT_UC="$OPTARG" + ;; + *) + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) -for VVERSION in $(git tag); do - VERSION="${VVERSION#v}" - DATE="$(git log -1 --format=%cd --date=short "$VVERSION")" - CHANGELOG_ENTRY="# [$VERSION](https://git.euandreh.xyz/$PROJECT/commit/?id=$VVERSION) - $DATE" +assert_arg() { + if [ -z "$1" ]; then + echo "Missing $2" >&2 + exit 2 + fi +} + +assert_arg "${PROJECT:-}" '-n PROJECT' + +if [ -z "${PROJECT_UC:-}" ]; then + PROJECT_UC="$PROJECT" +fi + +HOMEPAGE_LINK="Changelog for [$PROJECT_UC](https://$TLD/$PROJECT/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://git.euandreh.xyz/%s/commit/?id=%s) - %s' \ + "$VERSION" "$PROJECT" "$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=%cd --date=short "$VVERSION")" + assert "$DATE" "$VVERSION" +done + +# "$@" 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 |