#!/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"