]> git.lizzy.rs Git - elidragon_v2.git/blob - scripts/common.sh
76a7384e5add699a5fab16794d1c4a51b9fdddf0
[elidragon_v2.git] / scripts / common.sh
1 # common functions used by Elidragon v2 scripts
2
3 function world_lock {
4         echo "/tmp/ElidragonV2_$1_lock"
5 }
6
7 function multiserver_lock {
8         echo "/tmp/ElidragonV2_multiserver_lock"
9 }
10
11 function mapserver_lock {
12         echo "/tmp/ElidragonV2_mapserver_lock"
13 }
14
15 function world_screenname {
16         echo "Elidragon v2 - $1"
17 }
18
19 function multiserver_screenname {
20         echo "Elidragon v2 - multiserver"
21 }
22
23 function mapserver_screenname {
24         echo "Elidragon v2 - mapserver"
25 }
26
27 function kill_world {
28         kill `cat \`world_lock $1\``
29 }
30
31 function kill_multiserver {
32         kill -2 `cat \`multiserver_lock\``
33 }
34
35 function kill_mapserver {
36         kill `cat \`mapserver_lock\``
37 }
38
39 function world_running {
40         return $([ -f `world_lock $1` ])
41 }
42
43 function multiserver_running {
44         return $([ -f `multiserver_lock` ])
45 }
46
47 function mapserver_running {
48         return $([ -f `mapserver_lock` ])
49 }
50
51 function loop_worlds {
52         WORLDS=`ls worlds`
53         for WORLD in $WORLDS; do
54                 $1 $WORLD
55         done
56 }
57
58 function run_in_screen {
59         screen -dmS $1 bash -c "
60                 touch $2
61                 while [ -f $2 ]; do
62                         bash -c \"
63                                 echo \\$\\$ > $2
64                                 exec $3
65                         \"
66                 done
67         "
68 }
69
70 function start_mapserver {
71         echo -n "Starting Mapserver... "
72         if ! mapserver_running; then
73                 cd worlds/creative
74                 run_in_screen `mapserver_screenname` `mapserver_lock` "./mapserver-linux-x86_64"
75                 cd ../..
76                 echo -e "\e[32mDone\e[0m"
77         else
78                 echo -e "\e[31mmapserver is already running\e[0m"
79         fi
80 }
81
82 function stop_mapserver {
83         echo -n "Stopping mapserver... "
84         if mapserver_running; then
85                 kill_mapserver
86                 rm `mapserver_lock`
87                 echo -e "\e[32mDone\e[0m"
88         else
89                 echo -e "\e[31mmapserver is not running\e[0m"
90         fi
91 }
92
93 function restart_mapserver {
94         echo -n "Restarting mapserver... "
95         if mapserver_running; then
96                 kill_mapserver
97                 echo -e "\e[32mDone\e[0m"
98         else
99                 echo -e "\e[31mmapserver is not running\e[0m"
100         fi
101 }
102
103 function start_multiserver {
104         echo -n "Starting multiserver... "
105         if ! multiserver_running; then
106                 run_in_screen `multiserver_screenname` `multiserver_lock` "~/go/bin/multiserver"
107                 echo -e "\e[32mDone\e[0m"
108         else
109                 echo -e "\e[31mmultiserver is already running\e[0m"
110         fi
111 }
112
113 function stop_multiserver {
114         echo -n "Stopping multiserver... "
115         if multiserver_running; then
116                 kill_multiserver
117                 rm `multiserver_lock`
118                 echo -e "\e[32mDone\e[0m"
119         else
120                 echo -e "\e[31mmultiserver is not running\e[0m"
121         fi
122 }
123
124 function restart_multiserver {
125         echo -n "Restarting multiserver... "
126         if multiserver_running; then
127                 kill_multiserver
128                 echo -e "\e[32mDone\e[0m"
129         else
130                 echo -e "\e[31mmultiserver is not running\e[0m"
131         fi
132 }
133
134 function start_world {
135         echo -n "Starting $1... "
136         if ! world_running $1; then
137                 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"
138                 echo -e "\e[32mDone\e[0m"
139         else
140                 echo -e "\e[31m$1 is already running\e[0m"
141         fi
142 }
143
144 function stop_world {
145         echo -n "Stopping $1... "
146         if world_running $1; then
147                 kill_world $1
148                 rm `world_lock $1`
149                 echo -e "\e[32mDone\e[0m"
150         else
151                 echo -e "\e[31m$1 is not running\e[0m"
152         fi
153 }
154
155 function restart_world {
156         echo -n "Restarting $1... "
157         if world_running $1; then
158                 kill_world $1
159                 echo -e "\e[32mDone\e[0m"
160         else
161                 echo -e "\e[31m$1 is not running\e[0m"
162         fi
163 }