71 lines
2.5 KiB
Bash
71 lines
2.5 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
##
|
||
|
|
## Note this script uses a custom build/fork of the Spring github-changelog-generator, based on v0.0.6 / 0.0.7-SNAPSHOT
|
||
|
|
## https://github.com/spring-io/github-changelog-generator
|
||
|
|
##
|
||
|
|
## This fork is available at https://github.com/MysterAitch/github-changelog-generator
|
||
|
|
##
|
||
|
|
## For clarity, the jar is named to explicitly indicate that this is the forked version not the original.
|
||
|
|
##
|
||
|
|
|
||
|
|
|
||
|
|
## Exit if number of given parameters is incorrect (expecting 1 - the milestone title)
|
||
|
|
if [ "$#" -ne 1 ]; then
|
||
|
|
echo "[JavaParser-ERROR]: No arguments supplied. Exiting." >&2
|
||
|
|
echo "[JavaParser-ERROR]: Expected Usage: $0 \"MILESTONE_TITLE\"" >&2
|
||
|
|
exit 3
|
||
|
|
fi
|
||
|
|
|
||
|
|
## Variables
|
||
|
|
CHANGELOG_TITLE=$1
|
||
|
|
|
||
|
|
#CHANGELOG_GENERATOR_JAR=./github-changelog-generator.jar
|
||
|
|
CHANGELOG_GENERATOR_JAR=./github-changelog-generator_mysteraitch.jar
|
||
|
|
CONFIG_FILE_LOCATION="release-notes-config-title.yml"
|
||
|
|
OUTPUT_FILE=temp_changelog.md ## TODO: Consider making the output file configurable.
|
||
|
|
|
||
|
|
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo "[JavaParser]: This script runs a preconfigured $CHANGELOG_GENERATOR_JAR"
|
||
|
|
echo "[JavaParser]: "
|
||
|
|
echo "[JavaParser]: Expected Usage: $0 MILESTONE_TITLE"
|
||
|
|
echo "[JavaParser]: Where the MILESTONE_TITLE is the title of the milestone"
|
||
|
|
echo "[JavaParser]: e.g. $0 \"next release\""
|
||
|
|
#echo "[JavaParser]: e.g. https://github.com/javaparser/javaparser/milestone/182"
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo "[JavaParser]: - A changelog specific to that milestone will then be output to $OUTPUT_FILE"
|
||
|
|
echo "[JavaParser]: - A changelog specific to that milestone will then be output to the console"
|
||
|
|
echo "[JavaParser]"
|
||
|
|
|
||
|
|
echo "[JavaParser]: About to clear $OUTPUT_FILE ready for populating."
|
||
|
|
echo "[JavaParser]"
|
||
|
|
set -x
|
||
|
|
## Empty out the changelog:
|
||
|
|
# shellcheck disable=SC2188
|
||
|
|
> $OUTPUT_FILE
|
||
|
|
|
||
|
|
## Run the changelog generator tool, to generate a changelog.
|
||
|
|
java -jar $CHANGELOG_GENERATOR_JAR --spring.config.location="$CONFIG_FILE_LOCATION" "$CHANGELOG_TITLE" $OUTPUT_FILE
|
||
|
|
CHANGELOG_GENERATOR_EXIT_CODE=$?
|
||
|
|
set +x
|
||
|
|
|
||
|
|
## If the generator failed (e.g. due to an invalid milestone reference), exit this script.
|
||
|
|
if [ $CHANGELOG_GENERATOR_EXIT_CODE -ne 0 ]; then
|
||
|
|
echo "[JavaParser-ERROR]: Generation of the changelog failed. Exiting." >&2
|
||
|
|
exit 4
|
||
|
|
fi
|
||
|
|
|
||
|
|
|
||
|
|
## Also display the generated changelog to the console.
|
||
|
|
CHANGELOG_CONTENTS=$(<$OUTPUT_FILE)
|
||
|
|
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo "[JavaParser]: The changelog for milestone title $CHANGELOG_TITLE (also stored within $OUTPUT_FILE)"
|
||
|
|
echo "[JavaParser]"
|
||
|
|
echo ""
|
||
|
|
echo "$CHANGELOG_CONTENTS"
|