aboutsummaryrefslogtreecommitdiff
path: root/aux/checks/readme.sh
blob: f97b2d3ba8578f90637d1303fd616833e9f0ad48 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/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


EXPECTED="$(mkstemp)"
cat <<-EOF >> "$EXPECTED"

	Send contributions to the [mailing list] via
	[\`git send-email\`](https://git-send-email.io/).


	## Links

	- [homepage](https://$DOMAIN/s/$NAME/en/)
	- [source code](https://$DOMAIN/git/$NAME/)
	- [bug tracking](https://$DOMAIN/s/$NAME/TODOs.html)
	- [mailing list]
	- [CI logs](https://$DOMAIN/s/$NAME/ci/)
	- [CHANGELOG](https://$DOMAIN/s/$NAME/en/CHANGELOG.html)

	[mailing list]: https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$NAME%5D
EOF

RELEASES_LIST="$(mkstemp)"
add_release() {
	DATE="$1"
	VVERSION="$2"
	echo "- [$VVERSION](https://$DOMAIN/git/$NAME/commit/?id=$VVERSION) [$NAME-$VVERSION.tar.gz](https://$DOMAIN/git/$NAME/snapshot/$NAME-$VVERSION.tar.gz) ([sig](https://$DOMAIN/git/$NAME/snapshot/$NAME-$VVERSION.tar.gz.asc)) - $DATE" >> "$RELEASES_LIST"
}

for VVERSION in $(git tag); do
	DATE="$(git log -1 --format=%ad --date=short "$VVERSION")"
	add_release "$DATE" "$VVERSION"
done

# "$@" represents a list of tags to be also included in the verification.
for VVERSION in "$@"; do
	if ! git tag | grep -qF "$VVERSION"; then
		DATE="$(date '+%Y-%m-%d')"
		add_release "$DATE" "$VVERSION"
	fi
done

if [ -s "$RELEASES_LIST" ]; then
	printf '\n\n## Releases\n\n' >> "$EXPECTED"
	sort -r "$RELEASES_LIST" >> "$EXPECTED"
fi

cat <<-EOF >> "$EXPECTED"


	## License

	The code is licensed under
	[GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later]
	(AGPL-3.0-or-later).

	[AGPL-3.0-or-later]: https://$DOMAIN/git/$NAME/tree/COPYING
EOF

if ! tail -n "$(wc -l < "$EXPECTED")" README.md | diff - "$EXPECTED"; then
	echo 'Wrong metadata at the end of README.md file'
	echo "See expected content at: $EXPECTED"
	exit 1
fi