release.sh: Format issue-numbers in descriptions [ci skip]

This commit is contained in:
Justin M. Keyes 2019-01-04 06:03:47 +01:00
parent e22bf529c1
commit 292b1790c8

View File

@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Shows a log with changes grouped next to their merge-commit. # Prints a nicely-formatted commit history.
# - Commits are grouped below their merge-commit.
# - Issue numbers are moved next to the commit-id.
# #
# Parameters: # Parameters:
# $1 "since" commit # $1 "since" commit
@ -19,6 +21,24 @@ is_merge_commit() {
git log $1^2 >/dev/null 2>&1 && return 0 || return 1 git log $1^2 >/dev/null 2>&1 && return 0 || return 1
} }
# Removes parens from issue/ticket/PR numbers.
#
# Example:
# in: 3340e08becbf foo (#9423)
# out: 3340e08becbf foo #9423
_deparen() {
sed 's/(\(\#[0-9]\{3,\}\))/\1/g'
}
# Cleans up issue/ticket/PR numbers in the commit descriptions.
#
# Example:
# in: 3340e08becbf foo (#9423)
# out: 3340e08becbf #9423 foo
_format_ticketnums() {
nvim -Es +'g/\v(#[0-9]{3,})/norm! ngEldE0ep' +'%p' | _deparen
}
for commit in $(git log --format='%H' --first-parent "$__SINCE"..HEAD); do for commit in $(git log --format='%H' --first-parent "$__SINCE"..HEAD); do
if is_merge_commit ${commit} ; then if is_merge_commit ${commit} ; then
if [ -z "$__INVMATCH" ] || ! git log --oneline ${commit}^1..${commit}^2 \ if [ -z "$__INVMATCH" ] || ! git log --oneline ${commit}^1..${commit}^2 \
@ -29,4 +49,4 @@ for commit in $(git log --format='%H' --first-parent "$__SINCE"..HEAD); do
else else
git log -1 --oneline ${commit} git log -1 --oneline ${commit}
fi fi
done done | _format_ticketnums