aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/upstreamCommit.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/upstreamCommit.sh')
-rwxr-xr-xscripts/upstreamCommit.sh38
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