From 8a8312fb92c488e4323a30cd9ac4268ae862793d Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 3 Dec 2014 14:19:09 -0500 Subject: [PATCH] Improve patch scripts, add applyPatches.sh When working on CraftBukkit, one may need to update to the latest. Before adding new work, you would need to rebuild your patched files to latest. Currently BuildTools does this for you, but BuildTools does not support segment based actions. So this new script replicates the behavior of rebuilding the patched files using nms-patches. BuildTools can then be updated to simply call this script. Also, improved makePatches by removing dos2unix. This command does not exists on all systems, and can very simply be replaced by sed. Finally, hard coded path to /ls as a user may of aliased ls to default change the format, so call it directly to ensure we get the desired behavior. --- applyPatches.sh | 24 ++++++++++++++++++++++++ makePatches.sh | 8 +++++--- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100755 applyPatches.sh diff --git a/applyPatches.sh b/applyPatches.sh new file mode 100755 index 0000000000..27936e7368 --- /dev/null +++ b/applyPatches.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ -z "$1" ] +then + echo "Please run this script again with the clean decompile sources as an argument. In most cases this will be ../work/decompile-XXXX" + exit +fi + +nms=$1/net/minecraft/server +cb=src/main/java/net/minecraft/server +#clean up and rebuild +rm -rf $cb +mkdir -p $cb +for file in $(/bin/ls nms-patches) +do + patchFile="nms-patches/$file" + file="$(echo $file | cut -d. -f1).java" + + echo "Patching $file < $patchFile" + sed -i 's/\r//' "$nms/$file" + + cp "$nms/$file" "$cb/$file" + patch -d src/main/java/ "net/minecraft/server/$file" < "$patchFile" +done \ No newline at end of file diff --git a/makePatches.sh b/makePatches.sh index 5c0f74f406..0ebca409b4 100755 --- a/makePatches.sh +++ b/makePatches.sh @@ -5,13 +5,15 @@ then echo "Please run this script again with the clean decompile sources as an argument. In most cases this will be ../work/decompile-XXXX" exit fi +cb=src/main/java/net/minecraft/server +nms="$1/net/minecraft/server" -for file in $(ls src/main/java/net/minecraft/server) +for file in $(/bin/ls $cb) do echo "Diffing $file" - dos2unix -q $1/net/minecraft/server/$file $1/net/minecraft/server/$file + sed -i 's/\r//' "$nms/$file" outName=$(echo nms-patches/"$(echo $file | cut -d. -f1)".patch) - patchNew=$(diff -u $1/net/minecraft/server/$file src/main/java/net/minecraft/server/$file) + patchNew=$(diff -u "$nms/$file" "$cb/$file") if [ -f "$outName" ] then patchCut=$(echo "$patchNew" | tail -n +3)