]> git.lizzy.rs Git - elidragon_v2.git/blobdiff - scripts/common.sh
Add mapserver
[elidragon_v2.git] / scripts / common.sh
index caa3dad3944372714da0b4ae12b1c8367404c805..c8709972bbae364c9e597695e6bb267cc2735511 100644 (file)
@@ -5,7 +5,11 @@ function world_lock {
 }
 
 function multiserver_lock {
-       echo "/tmp/ElidragonV2_Multiserver_lock"
+       echo "/tmp/ElidragonV2_multiserver_lock"
+}
+
+function mapserver_lock {
+       echo "/tmp/ElidragonV2_mapserver_lock"
 }
 
 function world_screenname {
@@ -16,6 +20,10 @@ function multiserver_screenname {
        echo "Elidragon v2 - Multiserver"
 }
 
+function mapserver_screenname {
+       echo "Elidragon v2 - Mapserver"
+}
+
 function kill_world {
        kill `cat \`world_lock $1\``
 }
@@ -24,6 +32,10 @@ function kill_multiserver {
        kill -2 `cat \`multiserver_lock\``
 }
 
+function kill_mapserver {
+       kill `cat \`mapserver_lock\``
+}
+
 function world_running {
        return $([ -f `world_lock $1` ])
 }
@@ -32,26 +44,8 @@ function multiserver_running {
        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 {
@@ -61,20 +55,10 @@ 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
@@ -83,13 +67,46 @@ function run_in_screen {
        "
 }
 
+function start_mapserver {
+       echo -n "Starting Mapserver... "
+       if ! mapserver_running; then
+               cd worlds/creative
+               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
-               echo -e "\e[31mMultiserver is already running\e[0m"
-       else
+       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
 }
 
@@ -98,7 +115,6 @@ function stop_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"
@@ -106,10 +122,9 @@ function stop_multiserver {
 }
 
 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"
@@ -118,27 +133,31 @@ function restart_multiserver {
 
 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$2 is already running\e[0m"
        fi
 }
 
 function stop_world {
        echo -n "Stopping $1..."
-       if assert_running $1 "true"; then
+       if world_running $1; then
                kill_world $1
                rm `world_lock $1`
-
                echo -e "\e[32mDone\e[0m"
+       else
+               echo -e "\e[31m$2 is already running\e[0m"
        fi
 }
 
 function restart_world {
        echo -n "Restarting $1..."
-       if assert_running $1 "true"; then
+       if world_running $1; then
                kill_world $1
-
                echo -e "\e[32mDone\e[0m"
+       else
+               echo -e "\e[31m$2 is not running\e[0m"
        fi
 }