aboutsummaryrefslogtreecommitdiff
path: root/aux/checks/changelog.sh
blob: a73baec1c4cd7d62e760be83d496ed257c19d442 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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://$DOMAIN/$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" "$DOMAIN" "$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