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.
This commit is contained in:
Aikar 2014-12-03 14:19:09 -05:00
parent 4c02ffcaf3
commit 8a8312fb92
2 changed files with 29 additions and 3 deletions

24
applyPatches.sh Executable file
View File

@ -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

View File

@ -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" echo "Please run this script again with the clean decompile sources as an argument. In most cases this will be ../work/decompile-XXXX"
exit exit
fi 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 do
echo "Diffing $file" 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) 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" ] if [ -f "$outName" ]
then then
patchCut=$(echo "$patchNew" | tail -n +3) patchCut=$(echo "$patchNew" | tail -n +3)