]> git.lizzy.rs Git - elidragon_v2.git/blobdiff - scripts/common.sh
Update scripts to make mapserver function properly the first time
[elidragon_v2.git] / scripts / common.sh
index caa3dad3944372714da0b4ae12b1c8367404c805..73fc5f2293ea0c337d81b5d0f336356264f1723c 100644 (file)
@@ -5,15 +5,23 @@ 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 {
-       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 {
@@ -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,62 +67,100 @@ function run_in_screen {
        "
 }
 
-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
 }