#!/bin/bash #two-line version: # if [! -f CMakeLists.txt ]; then git clone https://github.com/MultiCraft/MultiCraft.git && cd MultiCraft || exit 1; fi # cmake . -DOpenGL_GL_PREFERENCE=GLVND && make me="$0" OFFLINE=false if [ "@$1" = "@--offline" ]; then OFFLINE=true fi if [ "@$2" = "@--offline" ]; then OFFLINE=true fi customDie() { echo echo echo "$me ERROR:" echo $1 echo exit 1 } dieIfOnline() { echo echo if [ "@$OFFLINE" = "@false" ]; then echo "$me ERROR:" echo $1 echo exit 1 else echo "$me WARNING:" echo $1 echo fi } GIT_USER_DIR="$HOME/Downloads/git/MultiCraft" if [ ! -d "$GIT_USER_DIR" ]; then mkdir -p "$GIT_USER_DIR" fi cd $GIT_USER_DIR || customDie "cd $GIT_USER_DIR FAILED" goodFlagFile=MultiCraft/CMakeLists.txt if [ -f "`which git`" ]; then echo "In `pwd`..." if [ ! -d MultiCraft ]; then if [ "@$OFFLINE" = "@false" ]; then git clone https://github.com/MultiCraft/MultiCraft.git || customDie "Cannot clone MultiCraft from `pwd`" fi cd MultiCraft || customDie "Cannot cd MultiCraft from `pwd`" else cd MultiCraft || customDie "Cannot cd MultiCraft from `pwd`" git pull || dieIfOnline "WARNING: Cannot pull MultiCraft from `pwd`" fi else if [ ! -f "$goodFlagFile" ]; then customDie "You are missing git, and offline install is not possible without in current directory (`pwd`)" else cd MultiCraft || customDie "Cannot cd MultiCraft from `pwd`" fi fi cd games || customDie "cd games FAILED in `pwd`" rmdir default if [ ! -d "default" ]; then if [ "@$OFFLINE" = "@false" ]; then git clone https://github.com/MultiCraft/MultiCraft_game default || customDie "Cannot " else echo echo echo echo "ERROR: default is not in `pwd`--worlds cannot load without a game." echo echo sleep 2 fi else if [ "@$OFFLINE" = "@false" ]; then cd default || customDie "cd default FAILED in `pwd`" git pull || customDie "git pull FAILED in `pwd`" cd .. || customDie "cd .. FAILED in `pwd`" fi fi cd .. || customDie "cd .. FAILED in `pwd`" srcPath=. flag1="-DOpenGL_GL_PREFERENCE=GLVND" echo echo "Running cmake srcPath..." cmake $srcPath $flag1 -DRUN_IN_PLACE=1 -DENABLE_GETTEXT=1 -DENABLE_FREETYPE=1 -DENABLE_LEVELDB=1 || customDie "cmake failed. See any messages above for more information. Run ./install-minetest-build-deps.sh if you did not." echo echo "Running make..." make -j$(nproc) || customDie "make failed. See any messages above for more information. Run ./install-minetest-build-deps.sh if you did not." if [ -f "`pwd`/bin/MultiCraft" ]; then echo "`pwd`/bin/MultiCraft" else echo "`pwd`" fi if [ -d "$GIT_USER_DIR/MultiCraft-poikilos" ]; then rsync -rt --info=progress2 --exclude 'multicraft.conf' "$GIT_USER_DIR/MultiCraft/" "$GIT_USER_DIR/MultiCraft-poikilos" fi echo "Done."