diff options
Diffstat (limited to 'scripts/upstreamCommit.sh')
-rwxr-xr-x | scripts/upstreamCommit.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/upstreamCommit.sh b/scripts/upstreamCommit.sh new file mode 100755 index 0000000000..e994d90a5f --- /dev/null +++ b/scripts/upstreamCommit.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +( +set -e +PS1="$" + +function changelog() { + base=$(git ls-tree HEAD $1 | cut -d' ' -f3 | cut -f1) + cd $1 && git log --oneline ${base}...HEAD | sed -E 's/(^[0-9a-f]{8,}( (SPIGOT-[0-9]{1,4}|MC-[0-9]{1,6}),?)* |Revert ")#([0-9]+)/\1PR-\4/' +} +bukkit=$(changelog work/Bukkit) +cb=$(changelog work/CraftBukkit) +spigot=$(changelog work/Spigot) + +updated="" +logsuffix="" +if [ ! -z "$bukkit" ]; then + logsuffix="$logsuffix\n\nBukkit Changes:\n$bukkit" + updated="Bukkit" +fi +if [ ! -z "$cb" ]; then + logsuffix="$logsuffix\n\nCraftBukkit Changes:\n$cb" + if [ -z "$updated" ]; then updated="CraftBukkit"; else updated="$updated/CraftBukkit"; fi +fi +if [ ! -z "$spigot" ]; then + logsuffix="$logsuffix\n\nSpigot Changes:\n$spigot" + if [ -z "$updated" ]; then updated="Spigot"; else updated="$updated/Spigot"; fi +fi +disclaimer="Upstream has released updates that appear to apply and compile correctly.\nThis update has not been tested by PaperMC and as with ANY update, please do your own testing" + +if [ ! -z "$1" ]; then + disclaimer="$@" +fi + +log="${UP_LOG_PREFIX}Updated Upstream ($updated)\n\n${disclaimer}${logsuffix}" + +echo -e "$log" | git commit -F - + +) || exit 1 |