diff --git a/changelog.d/0-release-notes/.title b/changelog.d/0-release-notes/.title new file mode 100644 index 000000000..d754b17ca --- /dev/null +++ b/changelog.d/0-release-notes/.title @@ -0,0 +1 @@ +Release notes \ No newline at end of file diff --git a/changelog.d/1-debian-builds/.title b/changelog.d/1-debian-builds/.title new file mode 100644 index 000000000..d1563daab --- /dev/null +++ b/changelog.d/1-debian-builds/.title @@ -0,0 +1 @@ +Base OS dependencies \ No newline at end of file diff --git a/changelog.d/2-wire-builds/.title b/changelog.d/2-wire-builds/.title new file mode 100644 index 000000000..7fa4b7bd0 --- /dev/null +++ b/changelog.d/2-wire-builds/.title @@ -0,0 +1 @@ +Internal Dependencies \ No newline at end of file diff --git a/changelog.d/3-deploy-builds/.title b/changelog.d/3-deploy-builds/.title new file mode 100644 index 000000000..fe92586cd --- /dev/null +++ b/changelog.d/3-deploy-builds/.title @@ -0,0 +1 @@ +External dependencies \ No newline at end of file diff --git a/changelog.d/4-docs/.title b/changelog.d/4-docs/.title new file mode 100644 index 000000000..7d1420123 --- /dev/null +++ b/changelog.d/4-docs/.title @@ -0,0 +1 @@ +Offline Documentation \ No newline at end of file diff --git a/changelog.d/5-bug-fixes/.title b/changelog.d/5-bug-fixes/.title new file mode 100644 index 000000000..23bcb1b64 --- /dev/null +++ b/changelog.d/5-bug-fixes/.title @@ -0,0 +1 @@ +Bug fixes and other updates \ No newline at end of file diff --git a/changelog.d/mk-changelog.sh b/changelog.d/mk-changelog.sh new file mode 100755 index 000000000..c9616788d --- /dev/null +++ b/changelog.d/mk-changelog.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +set -euo pipefail +shopt -s nullglob + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +getPRNumber() { + git log --reverse --format=%s -- "$1" | sed -rn '1 { /\((#.*)\)$/ s|^.*\((#.*)\)$|\1|p; }' | grep "" || + echo "#PR_NOT_FOUND" +} + +for d in "$DIR"/*; do + if [[ ! -d "$d" ]]; then continue; fi + + entries=("$d"/*[^~]) + + if [[ ${#entries[@]} -eq 0 ]]; then continue; fi + + echo -n "## " + # shellcheck disable=SC1003 + sed '$ a\' "$d/.title" + echo "" + # shellcheck disable=SC2094 + for f in "${entries[@]}"; do + pr=$(getPRNumber "$f") + # shellcheck disable=SC1003 + < "$f" sed -r ' + # create a bullet point on the first line + 1 { s/^/\* /; } + + # indent subsequent lines + 1 !{ s/^/ /; } + + # replace ## with PR number throughout + s/##/'"$pr"'/g' | + ( + if grep -q -r '\(#[^)]\)' "$f"; then + cat + else + sed -r ' + # add PR number at the end (unless already present) + $ { /^.*\((#.*)\)$/ ! { s/$/ ('"$pr"')/; } } + ' + fi + ) | sed -r ' + # remove trailing whitespace + s/\s+$// + + # make sure there is a trailing newline + $ a\' + done + echo "" +done diff --git a/changelog.d/mk-cleanup.sh b/changelog.d/mk-cleanup.sh new file mode 100755 index 000000000..b483a6e60 --- /dev/null +++ b/changelog.d/mk-cleanup.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -euo pipefail +shopt -s nullglob + +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +rm -f "$DIR"/*/* +git add "$DIR"