mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-26 12:45:52 +01:00
ff560e687c
* Update build.yml
* Remove 3rd party patches
* Add Upsteam Submodules
* Fix patches
* ?
* Fix patches
* Add Fast Init script
* Lots of stuff
also it's broke
* more broken
* fixes
* mor stuff
* gfhfgh
hg
* fix patch
* fix up script
* update submodule
* add papercut
* update tuinity
* update gitmodules
* fix var name
* fix more var stuff
* some how it's not deleting shit anymore
* should now use the branch it just made
why are we doing this again?
* now it does thing thing
* return previous so YAPFA can use it
* ok now it really does the thing
* for REAL it does the thing
* don't do the thing because it causes too many problems
* fix api
* work
* use better patching for YAPFA patches
* fix better patching
* more fixes
* new patches stuff
* remove old 3rd parry patches add removed akarin patches
* make new branch for making patches
* hopefully build patches correctly
* fix gitignore and add config patches
* remove papercut files
* fix some weirdness
* fix bug
* time to do some fixin' 👀
* New Patch System Rebased Patches
* fix full build
* exit 1
* fix
* Remove patch
* Hopefully fix compile errors
* fixes
* this might work
* don't use rej for our patches
* tmp disable cache
* some times case sensitivity is dumb
* my sanity is at an all time low :)
* dfg
* readd cahce
* fix?
* Update Upstream
* fix perms
* fix
* fix api
* Redo API
* rm folders
* fix villager brain patch
* emc explosion pref
* fixed aikar's shit
* betterfix
* fix lagggg
* Origami
* Origami Fixes
* Update readme
* test async path finding
* WIP Async Path Finding
* WIP fix async path finding
* same as bellow
* same
* update to newer funcs
* fix newer funcs
* fix author
* Updates, Fixes, and new patches
* fixes
* possibly async flying path finding
* minor asnyc pathfinding fix
* test remove non asnyc path finder
* WIP make all path finding async
* Rename everything
* Exec flag
* Rebuild hashes
* remove dupe patch
* fix?
* Fix packages, redirect config
* old nav class is now async and back
* add getchatcolor.getbyid and handle patches with a . in them better
Co-authored-by: tr7zw <tr7zw@live.de>
Co-authored-by: Unknown <unknown@example.com>
Co-authored-by: Ovydux <68059159+Ovydux@users.noreply.github.com>
211 lines
7.6 KiB
Bash
Executable File
211 lines
7.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Yatopia Build Script
|
|
|
|
############################################################################
|
|
# Multicore building #
|
|
# By JosephWorks #
|
|
# -------------------------------------------------------------------------#
|
|
# To use multicore building, use "$mvncmd" instead of "maven" #
|
|
# 20-50% speed improvement is quite common. #
|
|
############################################################################
|
|
|
|
# Exit immediately if a command exits with a non-zero status
|
|
set -e
|
|
|
|
source "./scripts/functions.sh"
|
|
|
|
JAVA_VERSION=`java -version 2>&1 |awk 'NR==1{ gsub(/"/,""); print $3 }'`
|
|
|
|
failed=0
|
|
case "$1" in
|
|
"reset")
|
|
(
|
|
$scriptdir/resetToUpstream.sh "$basedir"
|
|
) || failed=1
|
|
;;
|
|
"i" | "in" | "init" | "initsubmodules")
|
|
(
|
|
set -e
|
|
basedir
|
|
$scriptdir/initUpstream.sh "$basedir" || exit 1
|
|
) || failed=1
|
|
;;
|
|
"r" | "rb" | "rbp" | "rebuild")
|
|
(
|
|
set -e
|
|
basedir
|
|
#$scriptdir/importSources.sh "$basedir" || exit 1
|
|
$scriptdir/rebuildPatches.sh "$basedir" || exit 1
|
|
) || failed=1
|
|
;;
|
|
"a" | "p" | "patch" | "apply")
|
|
(
|
|
set -e
|
|
$scriptdir/applyPatches.sh "$basedir" || exit 1
|
|
) || failed=1
|
|
;;
|
|
"b" | "bu" | "build" | "install")
|
|
(
|
|
echo "$JAVA_VERSION"
|
|
basedir
|
|
$mvncmd -N install surefire-report:report
|
|
cd ${FORK_NAME}-API
|
|
$mvncmd -e clean install && (cd ../Tuinity/Paper/Paper-MojangAPI && $mvncmd -e clean install) && cd ../${FORK_NAME}-Server && $mvncmd -e clean install surefire-report:report
|
|
) || failed=1
|
|
;;
|
|
"j" | "launcher" | "jar" | "paperclip")
|
|
(
|
|
basedir
|
|
$scriptdir/installLauncher.sh "$basedir"
|
|
) || failed=1
|
|
;;
|
|
"u" | "up" | "upstream" | "update")
|
|
(
|
|
basedir
|
|
$scriptdir/updateUpstream.sh "$basedir" 1
|
|
)
|
|
;;
|
|
"r" | "root")
|
|
basedir
|
|
;;
|
|
"a" | "api")
|
|
cd "$basedir/Yatopia-API"
|
|
;;
|
|
"s" | "server")
|
|
cd "$basedir/Yatopia-Server"
|
|
;;
|
|
"fup" | "fetchupstream")
|
|
$scriptdir/fetchUpstream.sh "$basedir" || exit 1
|
|
;;
|
|
"c" | "clean")
|
|
rm -rf Yatopia-API
|
|
rm -rf Yatopia-Server
|
|
rm -rf Paper
|
|
echo "Cleaned build files"
|
|
;;
|
|
"f" | "fu" | "full" | "fullbuild")
|
|
(
|
|
echo "$JAVA_VERSION"
|
|
$scriptdir/initUpstream.sh "$basedir" || exit 1
|
|
basedir
|
|
$scriptdir/updateUpstream.sh "$basedir" || exit 1
|
|
set -e
|
|
$scriptdir/applyPatches.sh "$basedir" || exit 1
|
|
basedir
|
|
$mvncmd -N install surefire-report:report
|
|
cd ${FORK_NAME}-API
|
|
($mvncmd -e clean install && (cd ../Tuinity/Paper/Paper-MojangAPI && $mvncmd -e clean install) && cd ../${FORK_NAME}-Server && $mvncmd -e clean install surefire-report:report) || exit 1
|
|
$scriptdir/installLauncher.sh "$basedir" || exit 1
|
|
) || failed=1
|
|
;;
|
|
"e" | "edit")
|
|
case "$2" in
|
|
"s" | "server")
|
|
export Yatopia_LAST_EDIT="$basedir/Yatopia-Server"
|
|
cd "$basedir/Yatopia-Server"
|
|
(
|
|
set -e
|
|
gitstash
|
|
cd "$basedir/Paper/Paper-Server"
|
|
$gitcmd fetch --all
|
|
# Create the upstream branch in Paper project with current state
|
|
$gitcmd checkout master # possibly already in
|
|
$gitcmd branch -D upstream || true
|
|
$gitcmd branch -f upstream HEAD
|
|
cd "$basedir/Yatopia-Server"
|
|
$gitcmd rebase -i upstream/upstream
|
|
gitunstash
|
|
)
|
|
;;
|
|
"a" | "api")
|
|
export Yatopia_LAST_EDIT="$basedir/Yatopia-API"
|
|
cd "$basedir/Yatopia-API"
|
|
(
|
|
set -e
|
|
gitstash
|
|
cd "$basedir/Paper/Paper-API"
|
|
$gitcmd fetch --all
|
|
# Create the upstream branch in Paper project with current state
|
|
$gitcmd checkout master # possibly already in
|
|
$gitcmd branch -D upstream || true
|
|
$gitcmd branch -f upstream HEAD
|
|
cd "$basedir/Yatopia-API"
|
|
$gitcmd rebase -i upstream/upstream
|
|
gitunstash
|
|
)
|
|
;;
|
|
"c" | "continue")
|
|
cd "$Yatopia_LAST_EDIT"
|
|
unset Yatopia_LAST_EDIT
|
|
(
|
|
set -e
|
|
$gitcmd add .
|
|
$gitcmd commit --amend
|
|
$gitcmd rebase --continue
|
|
basedir
|
|
$scriptdir/rebuildPatches.sh "$basedir"
|
|
)
|
|
;;
|
|
*)
|
|
echo "You must edit either the api or server."
|
|
;;
|
|
esac
|
|
;;
|
|
"setup")
|
|
if [[ -f ~/.bashrc ]] ; then
|
|
NAME="Yatopia"
|
|
if [[ ! -z "${2+x}" ]] ; then
|
|
NAME="$2"
|
|
fi
|
|
(grep "alias $NAME=" ~/.bashrc > /dev/null) && (sed -i "s|alias $NAME=.*|alias $NAME='. $SOURCE'|g" ~/.bashrc) || (echo "alias $NAME='. $SOURCE'" >> ~/.bashrc)
|
|
alias "$NAME=. $SOURCE"
|
|
echo "You can now just type '$NAME' at any time to access the Yatopia tool."
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Yatopia build tool command. This provides a variety of commands to build and manage the Yatopia build"
|
|
echo "environment. For all of the functionality of this command to be available, you must first run the"
|
|
echo "'setup' command. View below for details. For essential building and patching, you do not need to do the setup."
|
|
echo ""
|
|
echo " Normal commands:"
|
|
echo " * r, rebuild | Rebuild patches, can be called from anywhere."
|
|
echo " * p, patch | Apply all patches to top of Paper without building it. Can be run from anywhere."
|
|
echo " * u, update | Update and patch the Paper submodule. Can be run from anywhere."
|
|
echo " * b, build | Build the projects, including the API and the Server. Can be ran anywhere."
|
|
echo " * j, jar | Build the projects and build the launcher jar. Can be ran anywhere."
|
|
echo " * d, deploy | Build the projects and deploy through Maven. Can be ran anywhere."
|
|
echo ""
|
|
echo " These commands require the setup command before use:"
|
|
echo " * r, root | Change directory to the root of the project."
|
|
echo " * a. api | Move to the Yatopia-API directory."
|
|
echo " * s, server | Move to the Yatopia-Server directory."
|
|
echo " * e, edit | Use to edit a specific patch, give it the argument \"server\" or \"api\""
|
|
echo " | respectively to edit the correct project. Use the argument \"continue\" after"
|
|
echo " | the changes have been made to finish and rebuild patches. Can be called from anywhere."
|
|
echo ""
|
|
echo " * setup | Add an alias to .bashrc to allow full functionality of this script. Run as:"
|
|
echo " | . ./Yatopia setup"
|
|
echo " | After you run this command you'll be able to just run 'Yatopia' from anywhere."
|
|
echo " | The default name for the resulting alias is 'Yatopia', you can give an argument to override"
|
|
echo " | this default, such as:"
|
|
echo " | . ./Yatopia setup example"
|
|
echo " | Which will allow you to run 'example' instead."
|
|
;;
|
|
esac
|
|
|
|
unset RCPATH
|
|
unset SOURCE
|
|
unset basedir
|
|
unset -f color
|
|
unset -f colorend
|
|
unset -f gitstash
|
|
unset -f gitunstash
|
|
if [[ "$failed" == "1" ]]; then
|
|
unset failed
|
|
false
|
|
else
|
|
unset failed
|
|
true
|
|
fi
|