automatic testserver deployment beta
This commit is contained in:
parent
62e7d558e6
commit
094b2f6dca
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ lib/
|
|||||||
target/
|
target/
|
||||||
*.iml
|
*.iml
|
||||||
.idea/
|
.idea/
|
||||||
|
bukkit-testserver/
|
||||||
|
26
pom.xml
26
pom.xml
@ -33,6 +33,23 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>exec-maven-plugin</artifactId>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<version>1.2.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>Run Test Bukkit Server</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>exec</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<executable>${basedir}/scripts/test-deployment.sh</executable>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
@ -40,7 +57,14 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>bukkit</artifactId>
|
<artifactId>bukkit</artifactId>
|
||||||
<version>RELEASE</version>
|
<version>1.4.7-R1.0</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bukkit</groupId>
|
||||||
|
<artifactId>craftbukkit</artifactId>
|
||||||
|
<version>1.4.7-R1.0</version>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
160
scripts/minecraft.sh
Executable file
160
scripts/minecraft.sh
Executable file
@ -0,0 +1,160 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(readlink -f $(dirname "$0"))
|
||||||
|
SERVICE='craftbukkit*.jar'
|
||||||
|
#USERNAME="minecraft"
|
||||||
|
CPU_COUNT=2
|
||||||
|
BUKKIT="$SCRIPT_DIR/../target/lib/$SERVICE"
|
||||||
|
INVOCATION="java -Xmx1000M -Xms300M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts -jar $BUKKIT nogui"
|
||||||
|
MCPATH="$SCRIPT_DIR/../bukkit-testserver"
|
||||||
|
|
||||||
|
if [ ! -d "$MCPATH" ]; then
|
||||||
|
mkdir -p "$MCPATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ME=$(whoami)
|
||||||
|
as_user() {
|
||||||
|
#if [ $ME == $USERNAME ] ; then
|
||||||
|
bash -c "$1"
|
||||||
|
#else
|
||||||
|
#su - $USERNAME -c "$1"
|
||||||
|
#fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mc_start() {
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "Tried to start but $SERVICE was already running!"
|
||||||
|
else
|
||||||
|
echo "$SERVICE was not running... starting."
|
||||||
|
cd "$MCPATH"
|
||||||
|
as_user "cd "$MCPATH" && screen -dmS minecraft $INVOCATION"
|
||||||
|
sleep 7
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is now running."
|
||||||
|
else
|
||||||
|
echo "Could not start $SERVICE."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mc_stop() {
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is running... stopping."
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
|
||||||
|
sleep 2
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
|
||||||
|
sleep 6
|
||||||
|
else
|
||||||
|
echo "$SERVICE was not running."
|
||||||
|
fi
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE could not be shut down... still running."
|
||||||
|
else
|
||||||
|
echo "$SERVICE is shut down."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mc_save() {
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is running... saving."
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
|
||||||
|
else
|
||||||
|
echo "$SERVICE was not running."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mc_reload() {
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is running... reloading."
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"reload\"\015'"
|
||||||
|
else
|
||||||
|
echo "$SERVICE was not running."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mc_reload_or_start() {
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE was already running! Doing a reload now!"
|
||||||
|
mc_reload
|
||||||
|
else
|
||||||
|
echo "$SERVICE was not running... starting."
|
||||||
|
cd "$MCPATH"
|
||||||
|
as_user "cd \"$MCPATH\" && screen -dmS minecraft $INVOCATION"
|
||||||
|
sleep 7
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is now running."
|
||||||
|
else
|
||||||
|
echo "Could not start $SERVICE."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mc_ddidderr_admin() {
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is running... making ddidder to admin and reloading permissions."
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"pex user ddidderr group set admin\"\015'"
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"pex reload\"\015'"
|
||||||
|
else
|
||||||
|
echo "$SERVICE was not running."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo "Starting Minecraft..."
|
||||||
|
mc_start
|
||||||
|
echo "DONE"
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
echo "Stopping Minecraft..."
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER SHUTTING DOWN!\"\015'"
|
||||||
|
mc_stop
|
||||||
|
echo "DONE"
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER REBOOT IN 10 SECONDS.\"\015'"
|
||||||
|
$0 stop
|
||||||
|
sleep 1
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
mc_reload
|
||||||
|
;;
|
||||||
|
reload_or_start)
|
||||||
|
echo "Starting or reloading Minecraft..."
|
||||||
|
mc_reload_or_start
|
||||||
|
echo "DONE"
|
||||||
|
;;
|
||||||
|
ddidderr_admin)
|
||||||
|
mc_ddidderr_admin
|
||||||
|
;;
|
||||||
|
connected)
|
||||||
|
as_user "screen -p 0 -S minecraft -X eval 'stuff \"who\"\015'"
|
||||||
|
sleep 2s
|
||||||
|
tac "$MCPATH"/server.log | grep -m 1 "Connected"
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
|
||||||
|
then
|
||||||
|
echo "$SERVICE is running."
|
||||||
|
else
|
||||||
|
echo "$SERVICE is not running."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
save)
|
||||||
|
mc_save
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: /etc/init.d/minecraft {start|stop|restart|connected|status}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
19
scripts/test-deployment.sh
Executable file
19
scripts/test-deployment.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(readlink -f $(dirname "$0"))
|
||||||
|
|
||||||
|
BUKKIT_DIR="$SCRIPT_DIR/../bukkit-testserver"
|
||||||
|
PLUGIN_DIR="$SCRIPT_DIR/../bukkit-testserver/plugins"
|
||||||
|
|
||||||
|
# TODO: This is a bad solution! Maven should write necessary information into an extra file.
|
||||||
|
ARTIFACT_ID="$(grep -C3 '<groupId>de.craftinc' "$SCRIPT_DIR/../pom.xml" | grep '<artifactId>' | sed 's/\s*<artifactId>//g' | sed 's/<\/artifactId>\s*//g')"
|
||||||
|
|
||||||
|
# TODO: This is a bad solution! Maven should write necessary information into an extra file.
|
||||||
|
VERSION="$(grep -C3 '<groupId>de.craftinc' "$SCRIPT_DIR/../pom.xml" | grep '<version>' | sed 's/\s*<version>//g' | sed 's/<\/version>\s*//g')"
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p "$PLUGIN_DIR"
|
||||||
|
|
||||||
|
cp "$SCRIPT_DIR/../target/$ARTIFACT_ID-$VERSION".jar "$PLUGIN_DIR/$ARTIFACT_ID".jar
|
||||||
|
|
||||||
|
"$SCRIPT_DIR/minecraft.sh" reload_or_start
|
Loading…
x
Reference in New Issue
Block a user