You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
3.1 KiB
139 lines
3.1 KiB
#!/bin/sh
|
|
usage(){
|
|
>&2 cat<<END
|
|
|
|
|
|
lmk-run
|
|
-------
|
|
This script is part of <https://github.com/poikilos/EnlivenMinetest>.
|
|
Suggested setup for a user in the sudo group:
|
|
'''
|
|
chgrp sudo /opt
|
|
'''
|
|
|
|
Suggested setup for minebest user:
|
|
'''
|
|
chgrp minebest /opt
|
|
'''
|
|
|
|
Further setup:
|
|
'''
|
|
chmod g+w /opt
|
|
cd /opt
|
|
ln -s ~/git/EnlivenMinetest/utilities/lmk-run
|
|
ln -s ~/git/EnlivenMinetest/utilities/get-lmk.sh
|
|
ln -s ~/git/EnlivenMinetest/utilities/fix-lmk-permissions.sh
|
|
'''
|
|
|
|
Examples:
|
|
lmk-run classic server
|
|
# ^ creates minetestserver
|
|
|
|
lmk-run finetest server
|
|
# ^ creates finetestserver
|
|
|
|
lmk-run trolltest server
|
|
# ^ creates trolltestserver
|
|
|
|
lmk-run classic client
|
|
# ^ creates minetest
|
|
|
|
lmk-run finetest client
|
|
# ^ creates finetest
|
|
|
|
lmk-run trolltest client
|
|
# ^ creates trolltest
|
|
|
|
END
|
|
}
|
|
if [ "x$1" = "x--help" ]; then
|
|
usage
|
|
exit 0
|
|
fi
|
|
PREV_DIR="`pwd`"
|
|
if [ "x$1" != "x" ]; then
|
|
LMK_MODE="$1"
|
|
fi
|
|
if [ "x$LMK_MODE" = "x" ]; then
|
|
usage
|
|
>&2 echo "[lmk-run] Error: (or LMK_MODE in environment). It should be classic, finetest, or trolltest."
|
|
exit 1
|
|
fi
|
|
_RAW_APP="$APP"
|
|
EXE_NAME=
|
|
|
|
if [ "x$LMK_MODE" = "xclassic" ]; then
|
|
EXE_NAME="minetest"
|
|
elif [ "x$LMK_MODE" = "xfinetest" ]; then
|
|
EXE_NAME="finetest"
|
|
elif [ "x$LMK_MODE" = "xtrolltest" ]; then
|
|
EXE_NAME="trolltest"
|
|
fi
|
|
|
|
if [ "x$2" != "x" ]; then
|
|
APP="$2"
|
|
echo "[lmk-run] set APP to $2"
|
|
fi
|
|
|
|
APP_ARG=
|
|
if [ "x$APP" = "xclient" ]; then
|
|
APP_ARG="--client"
|
|
elif [ "x$APP" = "xserver" ]; then
|
|
APP_ARG="--server"
|
|
EXE_NAME="${EXE_NAME}server"
|
|
else
|
|
usage
|
|
echo "[lmk-run] Error: You must specify client or server after mode (APP=$APP, \$2=$2)."
|
|
exit 1
|
|
fi
|
|
|
|
echo "[lmk-run] building $EXE_NAME, or running if already exists"
|
|
if [ "x$APP" = "x" ]; then
|
|
usage
|
|
>&2 echo "[lmk-run] Error: specify client or server after the mode."
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -d "linux-minetest-kit" ]; then
|
|
echo "[lmk-run] Running ./get-lmk.sh since there is no linux-minetest-kit directory in `pwd`..."
|
|
./get-lmk.sh
|
|
code=$?
|
|
exit $code
|
|
fi
|
|
cd linux-minetest-kit
|
|
if [ $? -ne 0 ]; then
|
|
>&2 echo "[lmk-run] Error: cd linux-minetest-kit failed in `pwd`. Try running: ./get-lmk.sh"
|
|
exit 1
|
|
fi
|
|
if [ ! -f "mtcompile-program.pl" ]; then
|
|
>&2 echo "[lmk-run] Error: missing mtcompile-program.pl in `pwd`"
|
|
exit 1
|
|
fi
|
|
$PRE_CMD="sudo -u minebest"
|
|
$PRE_CMD ls > /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
PRE_CMD=""
|
|
>&2 echo "[lmk-run] Warning: running as $USER since 'sudo -u minebest' failed."
|
|
fi
|
|
if [ ! -d toolstree ]; then
|
|
$PRE_CMD bash -e mtcompile-libraries.sh build
|
|
if [ $? -ne 0 ]; then
|
|
>&2 echo "[lmk-run] Error: '$PRE_CMD bash -e mtcompile-libraries.sh' failed in `pwd`."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "[lmk-run] using existing toolstree in `pwd`"
|
|
fi
|
|
|
|
if [ ! -f minetest/bin/$EXE_NAME ]; then
|
|
echo "[lmk-run] compiling..."
|
|
$PRE_CMD perl mtcompile-program.pl build --$LMK_MODE $APP_ARG
|
|
if [ $? -ne 0 ]; then
|
|
>&2 echo "[lmk-run] Error: '$PRE_CMD perl mtcompile-program.pl build --$LMK_MODE $APP_ARG' failed in `pwd`."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "[lmk-run] using existing `pwd`/minetest/bin/$EXE_NAME"
|
|
fi
|
|
|