ara/doc/changelog-release-notes.sh
David Moreau Simard 8ff1693f81
docs: use creatordate instead of authordate in relnotes
These can be different dates, use creatordate to reflect when the tag
was actually pushed.

Change-Id: Ia375aca5c1eef3a3d16e104feea1a4063d9ebef7
2020-08-28 10:22:55 -04:00

47 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2020 The ARA Records Ansible authors
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# Quick and dirty translation of release notes from git tags to rst format
# $ ./changelog-release-notes.sh > source/changelog-release-notes.rst
function header() {
echo "${1}"
characters=$(expr length "${1}")
printf '%0.s*' $(seq 1 $characters)
echo
echo
}
function smallheader() {
echo "${1}"
characters=$(expr length "${1}")
printf '%0.s#' $(seq 1 $characters)
echo
echo
}
echo ".."
echo " note: generated through doc/changelog-release-notes.sh"
echo
header "Changelog and release notes"
# Order the git repository tags by date, exclude alpha, beta and rc releases,
# then reverse it so the most recent one is at the top instead.
for tag in $(git tag -l --sort=creatordate | egrep -v "a|b|rc" | tac); do
tag_date=$(git log -1 --pretty='%cd' --date=format:'%Y-%m-%d' $tag)
smallheader "${tag} (${tag_date})"
echo "https://github.com/ansible-community/ara/releases/tag/${tag}"
echo
# Don't include a code-block if there's no message
length=$(git tag -n9001 $tag | tail -n +3 | wc -l)
if [ $length -gt 0 ]; then
echo ".. code-block:: text"
echo
# Remove the header from the output and strip one whitespace from the left
git tag -n9001 $tag | tail -n +3 | cut -c 1-
fi
echo
done