Files
gymkhana/apply_patches.sh

60 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
source bash_colors.sh
if [ -f .env ]; then
source .env
fi
DEFAULT_DESTINATION_PATH="../escoria-demo-game"
DESTINATION_PATH="${1:-$DEFAULT_DESTINATION_PATH}"
REMOTE_PATCHES=(
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/777.patch"
)
PROJECT_PATH=$PWD
echo -e
echo -e "${BOLD_BLUE}Escoria Core patcher${NOCOLOR}"
echo -e =======================
echo -e "Destination path: ${GREEN}${DESTINATION_PATH}${NOCOLOR}"
pushd $PWD > /dev/null
cd $DESTINATION_PATH
echo -e
echo -e "${BLUE}Cleaning and updating the repo${NOCOLOR}"
echo -e ==========================
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$BRANCH" != "main" ]
then
echo -e ${RED}Not on main branch. Aborting. ${NOCOLOR}
echo -e
exit 0
fi
git clean -fx
git reset --hard
git pull origin main
echo -e
echo -e "${BLUE}Applying remote patches...${NOCOLOR}"
echo -e ==========================
for REMOTE_PATCH in "${REMOTE_PATCHES[@]}"; do
echo -e "Patch: ${ORANGE}$REMOTE_PATCH${NOCOLOR}"
curl $REMOTE_PATCH | git apply -v --index
done
echo -e
echo -e "${BLUE}Applying local patches...${NOCOLOR}"
echo -e ==========================
for FILE in $PROJECT_PATH/patches/*; do
echo -e "Patch: ${ORANGE}$FILE${NOCOLOR}"
git apply -v --index $FILE
done
popd > /dev/null
echo -e "${BLUE}Done!🎉${NOCOLOR}"