mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 01:47:42 +01:00
add some helper scripts (wip)
This commit is contained in:
75
scripts/apatch.sh
Executable file
75
scripts/apatch.sh
Executable file
@@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
gitcmd="git -c commit.gpgsign=false"
|
||||||
|
|
||||||
|
noapply=1
|
||||||
|
isreject=0
|
||||||
|
if [[ $1 == "--noapplied" ]]; then
|
||||||
|
noapply=1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$1" ]; then
|
||||||
|
file="$1"
|
||||||
|
elif [ -z "$1" ] && [ -f .git/rebase-apply/patch ]; then
|
||||||
|
file=".git/rebase-apply/patch"
|
||||||
|
noapply=1
|
||||||
|
isreject=1
|
||||||
|
else
|
||||||
|
echo "Please specify a file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
applied=$(echo $file | sed 's/.patch$/-applied\.patch/g')
|
||||||
|
if [ "$1" == "--reset" ]; then
|
||||||
|
$gitcmd am --abort
|
||||||
|
$gitcmd reset --hard
|
||||||
|
$gitcmd clean -f
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
(test "$isreject" != "1" && $gitcmd am -3 $file) || (
|
||||||
|
echo "Failures - Wiggling"
|
||||||
|
$gitcmd reset --hard
|
||||||
|
$gitcmd clean -f
|
||||||
|
errors=$($gitcmd apply --rej $file 2>&1)
|
||||||
|
echo "$errors" >> ~/patch.log
|
||||||
|
export missingfiles=""
|
||||||
|
export summaryfail=""
|
||||||
|
export summarygood=""
|
||||||
|
for i in $(find . -name \*.rej); do
|
||||||
|
base=$(echo "$i" | sed 's/.rej//g')
|
||||||
|
if [ -f "$i" ]; then
|
||||||
|
sed -e 's/^diff a\/\(.*\) b\/\(.*\)[[:space:]].*rejected.*$/--- \1\n+++ \2/' -i $i && wiggle -v -l --replace "$base" "$i"
|
||||||
|
rm "$base.porig" "$i"
|
||||||
|
else
|
||||||
|
echo "No such file: $base"
|
||||||
|
missingfiles="$missingfiles\n$base"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for i in $($gitcmd status --porcelain | awk '{print $2}'); do
|
||||||
|
filedata=$(cat "$i")
|
||||||
|
if [ -f "$file" ] && [[ "$filedata" == *"<<<<<"* ]]; then
|
||||||
|
export summaryfail="$summaryfail\nFAILED TO APPLY: $i"
|
||||||
|
else
|
||||||
|
$gitcmd add --force "$i"
|
||||||
|
export summarygood="$summarygood\nAPPLIED CLEAN: $i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo -e "$summarygood"
|
||||||
|
echo -e "$summaryfail"
|
||||||
|
if [[ "$errors" == *"No such file"* ]]; then
|
||||||
|
echo "===========================";
|
||||||
|
echo " "
|
||||||
|
echo " MISSING FILES"
|
||||||
|
echo $(echo "$errors" | grep "No such file")
|
||||||
|
echo -e "$missingfiles"
|
||||||
|
echo " "
|
||||||
|
echo "===========================";
|
||||||
|
fi
|
||||||
|
$gitcmd status
|
||||||
|
$gitcmd diff
|
||||||
|
)
|
||||||
|
if [[ "$noapply" != "1" ]] && [[ "$file" != *-applied.patch ]]; then
|
||||||
|
mv "$file" "$applied"
|
||||||
|
fi
|
||||||
28
scripts/upstreamCommit.sh
Normal file → Executable file
28
scripts/upstreamCommit.sh
Normal file → Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/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
|
||||||
|
}
|
||||||
|
paper=$(changelog .gradle/caches/paperweight/upstreams/paper)
|
||||||
|
|
||||||
|
updated=""
|
||||||
|
logsuffix=""
|
||||||
|
if [ ! -z "$paper" ]; then
|
||||||
|
logsuffix="$logsuffix\n\nPaper Changes:\n$paper"
|
||||||
|
updated="Paper"
|
||||||
|
fi
|
||||||
|
disclaimer="Upstream has released updates that appear to apply and compile correctly"
|
||||||
|
|
||||||
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user