}
function multiserver_lock {
- echo "/tmp/ElidragonV2_Multiserver_lock"
+ echo "/tmp/ElidragonV2_multiserver_lock"
+}
+
+function mapserver_lock {
+ echo "/tmp/ElidragonV2_mapserver_lock"
}
function world_screenname {
- echo "Elidragon v2 - $1"
+ echo "ElidragonV2_$1"
}
function multiserver_screenname {
- echo "Elidragon v2 - Multiserver"
+ echo "ElidragonV2_multiserver"
+}
+
+function mapserver_screenname {
+ echo "ElidragonV2_mapserver"
}
function kill_world {
kill -2 `cat \`multiserver_lock\``
}
+function kill_mapserver {
+ kill `cat \`mapserver_lock\``
+}
+
function world_running {
return $([ -f `world_lock $1` ])
}
return $([ -f `multiserver_lock` ])
}
-function assert_running {
- if ! world_running $1; then
- echo -e "\e[31mWorld $1 is not running\e[0m"
- if [ -z $2 ]; then
- exit 1
- else
- return 1
- fi
- fi
-}
-
-function assert_not_running {
- if world_running $1; then
- echo -e "\e[31mWorld $1 is already running\e[0m"
- if [ -z $2 ]; then
- exit 1
- else
- return 1
- fi
- fi
+function mapserver_running {
+ return $([ -f `mapserver_lock` ])
}
function loop_worlds {
done
}
-function run_one_or_all {
- if [ -z $2 ]; then
- loop_worlds $1
- return 0
- else
- $1 $2
- return 1
- fi
-}
-
function run_in_screen {
screen -dmS $1 bash -c "
touch $2
- while [ -f $2; ] do
+ while [ -f $2 ]; do
bash -c \"
echo \\$\\$ > $2
exec $3
"
}
-function start_multiserver {
- echo -n "Starting Multiserver... "
- if multiserver_running; then
- echo -e "\e[31mMultiserver is already running\e[0m"
+function start_mapserver {
+ echo -n "Starting mapserver... "
+ if ! mapserver_running; then
+ cd worlds/creative
+ while ! [ -f map.sqlite ]; do
+ sleep 0.1
+ done
+ run_in_screen `mapserver_screenname` `mapserver_lock` "./mapserver-linux-x86_64"
+ cd ../..
+ echo -e "\e[32mDone\e[0m"
else
+ echo -e "\e[31mmapserver is already running\e[0m"
+ fi
+}
+
+function stop_mapserver {
+ echo -n "Stopping mapserver... "
+ if mapserver_running; then
+ kill_mapserver
+ rm `mapserver_lock`
+ echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31mmapserver is not running\e[0m"
+ fi
+}
+
+function restart_mapserver {
+ echo -n "Restarting mapserver... "
+ if mapserver_running; then
+ kill_mapserver
+ echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31mmapserver is not running\e[0m"
+ fi
+}
+
+function start_multiserver {
+ echo -n "Starting multiserver... "
+ if ! multiserver_running; then
run_in_screen `multiserver_screenname` `multiserver_lock` "~/go/bin/multiserver"
echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31mmultiserver is already running\e[0m"
fi
}
function stop_multiserver {
- echo -n "Stopping Multiserver... "
+ echo -n "Stopping multiserver... "
if multiserver_running; then
kill_multiserver
rm `multiserver_lock`
-
echo -e "\e[32mDone\e[0m"
else
- echo -e "\e[31mMultiserver is not running\e[0m"
+ echo -e "\e[31mmultiserver is not running\e[0m"
fi
}
function restart_multiserver {
- echo -n "Multiserver..."
+ echo -n "Restarting multiserver... "
if multiserver_running; then
kill_multiserver
-
echo -e "\e[32mDone\e[0m"
else
- echo -e "\e[31mMultiserver is not running\e[0m"
+ echo -e "\e[31mmultiserver is not running\e[0m"
fi
}
function start_world {
echo -n "Starting $1... "
- if assert_not_running $1 "true"; then
+ if ! world_running $1; then
run_in_screen `world_screenname $1` `world_lock $1` "minetest --server --terminal --world worlds/$1 --config worlds/$1/minetest.conf --logfile worlds/$1/debug.txt"
echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31m$1 is already running\e[0m"
fi
}
function stop_world {
- echo -n "Stopping $1..."
- if assert_running $1 "true"; then
+ echo -n "Stopping $1... "
+ if world_running $1; then
kill_world $1
rm `world_lock $1`
-
echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31m$1 is not running\e[0m"
fi
}
function restart_world {
- echo -n "Restarting $1..."
- if assert_running $1 "true"; then
+ echo -n "Restarting $1... "
+ if world_running $1; then
kill_world $1
-
echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31m$1 is not running\e[0m"
fi
}