updated on Thu Jan 26 16:09:46 UTC 2012
[aur-mirror.git] / bukkit / bukkit
blob9db5ae11edea899e1247e4e7ebad0e4bbb622593
1 #!/bin/bash
2 # created and maintained by
3 # ragon <frederik.engels24@gmail.com>
5 . /etc/rc.conf
6 . /etc/rc.d/functions
8 java_flags="-Xmx1024M -Xms512M"
9 config_dir=/etc/bukkit/
10 world_dir=world
11 backup_dir=/etc/bukkit/backups/
12 cp_format=$(date '+%Y%m%dh%Hm%M')
13 profile_dir=/etc/profile.d/
15 craft_dir=/usr/share/java/bukkit/
16 craft_jar=craftbukkit-1.1.R1-SNAPSHOT.jar
18 bukkit_dir=/usr/share/java/bukkit/
19 bukkit_jar=bukkit-1.0.0-R1-SNAPSHOT.jar
21 java_bin=java
22 maven_bin=/opt/maven/bin/mvn
24 _gitlocal=/usr/src/Bukkit/
25 _gitlocal2=/usr/src/CraftBukkit/
27 _gitweb=git://github.com/Bukkit/Bukkit.git
28 _gitweb2=git://github.com/Bukkit/CraftBukkit.git
30 check_dir()
32 if [ -d $craft_dir ] ; then
33 sleep 0
34 else
35 mkdir -p $craft_dir
37 if [ -d $bukkit_dir ] ; then
38 sleep 0
39 else
40 mkdir -p $bukkit_dir
44 case "$1" in
45 start)
46 stat_busy "starting Bukkit Server"
47 check_dir
48 if [ "$(screen -ls | grep bukkit)" == "" ] ; then
49 cd $config_dir
50 screen -S bukkit -dmS $java_bin $java_flags -jar $craft_dir$craft_jar
51 add_daemon bukkit
52 stat_done
53 else
54 echo "bukkit server already running"
55 stat_fail
56 exit 0
58 if [ -d $config_dir ] ; then
59 sleep 0
60 else
61 mkdir -p $config_dir
64 stop)
65 stat_busy "stopping Bukkit Server"
66 check_dir
67 if [ "$(screen -ls | grep bukkit)" == "" ] ; then
68 echo "bukkit server is not running"
69 stat_fail
70 exit 0
71 else
72 screen -S bukkit -p 0 -X stuff "stop$(echo -ne '\r')"
73 sleep 5
74 rm_daemon bukkit
75 stat_done
79 restart)
81 $0 stop
82 sleep 5 # give enough time to shutdown and close screen
83 $0 start
85 upgrade)
86 stat_busy "stopping Bukkit Server"
87 check_dir
88 if [ "$(screen -ls | grep bukkit)" == "" ] ; then
89 sleep 0
90 else
91 screen -S bukkit -p 0 -X stuff "say server shutting down in 60 seconds for upgrade$(echo -ne '\r')"
92 sleep 30
93 screen -S bukkit -p 0 -X stuff "say server shutting down in 30 seconds$(echo -ne '\r')"
94 sleep 20
95 screen -S bukkit -p 0 -X stuff "say 10$(echo -ne '\r')"
96 sleep 5
97 screen -S bukkit -p 0 -X stuff "say 5$(echo -ne '\r')"
98 sleep 1
99 screen -S bukkit -p 0 -X stuff "say 4$(echo -ne '\r')"
100 sleep 1
101 screen -S bukkit -p 0 -X stuff "say 3$(echo -ne '\r')"
102 sleep 1
103 screen -S bukkit -p 0 -X stuff "say 2$(echo -ne '\r')"
104 sleep 1
105 screen -S bukkit -p 0 -X stuff "say 1$(echo -ne '\r')"
106 sleep 1
107 screen -S bukkit -p 0 -X stuff "stop$(echo -ne '\r')"
108 rm_daemon bukkit
111 echo "upgrading server now"
112 if [ -d "$_gitlocal" ] ; then
113 cd "$_gitlocal" && git pull
114 else
115 mkdir -p "$_gitlocal"
116 cd "$_gitlocal/../"
117 git clone $_gitweb
120 cd $_gitlocal
121 if [ -f "$profile_dir/jdk.sh" ] ; then
122 source $profile_dir/jdk.sh
124 $maven_bin clean install
126 cp $_gitlocal/target/$bukkit_jar $bukkit_dir
128 if [ -d "$_gitlocal2" ] ; then
129 cd "$_gitlocal2" && git pull
130 else
131 mkdir -p "$_gitlocal2"
132 cd "$_gitlocal2/../"
133 git clone $_gitweb2
136 cd $_gitlocal2
137 $maven_bin clean package
139 cp $_gitlocal2/target/$craft_jar $craft_dir
141 stat_done
144 slowstop) ## be friendly to your players :)
146 stat_busy "stopping Bukkit Server"
147 check_dir
148 if [ "$(screen -ls | grep bukkit)" == "" ] ; then
149 sleep 0
150 else
151 screen -S bukkit -p 0 -X stuff "say server shutting down in 60 seconds for system upgrade$(echo -ne '\r')"
152 sleep 30
153 screen -S bukkit -p 0 -X stuff "say server shutting down in 30 seconds$(echo -ne '\r')"
154 sleep 20
155 screen -S bukkit -p 0 -X stuff "say 10$(echo -ne '\r')"
156 sleep 5
157 screen -S bukkit -p 0 -X stuff "say 5$(echo -ne '\r')"
158 sleep 1
159 screen -S bukkit -p 0 -X stuff "say 4$(echo -ne '\r')"
160 sleep 1
161 screen -S bukkit -p 0 -X stuff "say 3$(echo -ne '\r')"
162 sleep 1
163 screen -S bukkit -p 0 -X stuff "say 2$(echo -ne '\r')"
164 sleep 1
165 screen -S bukkit -p 0 -X stuff "say 1$(echo -ne '\r')"
166 sleep 1
167 screen -S bukkit -p 0 -X stuff "stop$(echo -ne '\r')"
168 rm_daemon bukkit
171 stat_done
173 status)
174 stat_busy 'Checking Bukkit server status'
175 ck_status bukkit
177 backup)
178 stat_busy "backing up Bukkit world"
180 check_dir
181 if [ "$(screen -ls | grep bukkit)" == "" ] ; then
182 sleep 0
183 else
184 screen -S bukkit -p 0 -X stuff "say backing up '$world_dir' as '$world_dir$cp_format.tar.gz'$(echo -ne '\r')"
185 screen -S bukkit -p 0 -X stuff "save-all$(echo -ne '\r')"
186 sleep 5
188 if [ -d $backup_dir ] ; then
189 sleep 0
190 else
191 mkdir -p $backup_dir
193 echo "backing up as $backup_dir$world_dir$cp_format"
195 cd $config_dir
197 tar czf $backup_dir$world_dir$cp_format.tar.gz $world_dir
199 if [ "$(screen -ls | grep bukkit)" == "" ] ; then
200 sleep 0
201 else
202 screen -S bukkit -p 0 -X stuff "say finished backing up '$world_dir'$(echo -ne '\r')"
204 stat_done
207 echo "usage: $0 {start|stop|restart|status|upgrade|sysupgrade|backup}"
208 esac
210 exit 0