51 lines
No EOL
1.1 KiB
Bash
Executable file
51 lines
No EOL
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# This script is intended for maintainers only to generate changelog markdown before new releases.
|
|
# The generated markdown can be added to the main CHANGELOG.md file located at the root of the repository.
|
|
|
|
set -e
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: $0 TAG" >&2
|
|
exit 1
|
|
fi
|
|
|
|
function join { local IFS="$1"; shift; echo "$*"; }
|
|
function qdate
|
|
{
|
|
if type -p gdate > /dev/null; then
|
|
gdate "$@";
|
|
else
|
|
date "$@";
|
|
fi
|
|
}
|
|
|
|
CHANGELOG_PATH='changelogs/unreleased'
|
|
|
|
tag=$1
|
|
unreleased=$(ls -t ${CHANGELOG_PATH})
|
|
|
|
echo -e "Generating CHANGELOG markdown from ${CHANGELOG_PATH}\n"
|
|
cat << EOT
|
|
## [${tag}] - $(qdate '+%Y-%m-%d')
|
|
|
|
### Release
|
|
- https://github.com/Zokrates/ZoKrates/releases/tag/${tag}
|
|
|
|
### Changes
|
|
EOT
|
|
|
|
for file in $unreleased
|
|
do
|
|
IFS=$'-' read -ra entry <<< "$file"
|
|
author=$(join '-' ${entry[@]:1})
|
|
|
|
IFS=$'\n' rows=$(cat ${CHANGELOG_PATH}/${file})
|
|
for row in $rows
|
|
do
|
|
echo "- ${row} (#${entry[0]}, @${author})"
|
|
done
|
|
done
|
|
|
|
echo -e "\nCopy and paste the markdown above to the appropriate CHANGELOG file."
|
|
echo "Be sure to run: git rm ${CHANGELOG_PATH}/*" |