diff options
-rw-r--r-- | .SRCINFO | 29 | ||||
-rwxr-xr-x | PKGBUILD | 30 | ||||
-rwxr-xr-x | spigot.install | 18 | ||||
-rwxr-xr-x | spigot.service | 11 | ||||
-rwxr-xr-x | spigot.sh | 61 |
5 files changed, 149 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..c5594c9de865 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,29 @@ +pkgbase = spigot + pkgdesc = High performance Minecraft server implementation + pkgver = 1.8.7 + pkgrel = 1 + url = http://www.spigotmc.org/ + install = spigot.install + arch = any + license = LGPL + makedepends = java-environment + makedepends = git + depends = java-runtime-headless + depends = tmux + depends = sudo + depends = fontconfig + provides = bukkit + provides = craftbukkit=1.8.7 + conflicts = bukkit + conflicts = craftbukkit + conflicts = spigot-patcher + noextract = BuildTools.jar + source = https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar + source = spigot.service + source = spigot.sh + md5sums = SKIP + md5sums = 55eb03d443e1aa1a013aa01798e056d4 + md5sums = 8933d1710304dfdf99632f53551672ef + +pkgname = spigot + diff --git a/PKGBUILD b/PKGBUILD new file mode 100755 index 000000000000..166cb349dcda --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,30 @@ +pkgname=spigot +pkgver=1.8.7 +pkgrel=1 +pkgdesc="High performance Minecraft server implementation" +arch=(any) +url="http://www.spigotmc.org/" +license=("LGPL") +depends=(java-runtime-headless tmux sudo fontconfig) +makedepends=(java-environment git) +conflicts=(bukkit craftbukkit spigot-patcher) +provides=(bukkit "craftbukkit=${pkgver%_*}") +install=spigot.install +source=("https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" +"spigot.service" +"spigot.sh") +noextract=("BuildTools.jar") +md5sums=('SKIP' + '55eb03d443e1aa1a013aa01798e056d4' + '8933d1710304dfdf99632f53551672ef') +build() { + export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=1g" + java -jar BuildTools.jar --rev $pkgver +} +package() { + install -Dm644 spigot-$pkgver.jar "$pkgdir/srv/craftbukkit/spigot.jar" + install -m755 spigot.sh "$pkgdir/srv/craftbukkit/spigot.sh" + install -Dm644 spigot.service "$pkgdir/usr/lib/systemd/system/spigot.service" +} + +# vim:set ts=2 sw=2 et: diff --git a/spigot.install b/spigot.install new file mode 100755 index 000000000000..68524cf55999 --- /dev/null +++ b/spigot.install @@ -0,0 +1,18 @@ +post_install() { + getent group craftbukkit >/dev/null 2>&1 || groupadd craftbukkit + getent passwd craftbukkit >/dev/null 2>&1 || useradd -g craftbukkit -d /srv/craftbukkit -s /bin/bash craftbukkit + chown -R craftbukkit:craftbukkit /srv/craftbukkit/ +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + if getent passwd craftbukkit >/dev/null 2>&1; then + userdel craftbukkit + fi + if getent group craftbukkit >/dev/null 2>&1; then + groupdel craftbukkit + fi +} diff --git a/spigot.service b/spigot.service new file mode 100755 index 000000000000..5849fc6e11e2 --- /dev/null +++ b/spigot.service @@ -0,0 +1,11 @@ +[Unit] +Description=Spigot +After=local-fs.target network.target + +[Service] +ExecStart=/srv/craftbukkit/spigot.sh start +ExecStop=/srv/craftbukkit/spigot.sh stop +Type=forking + +[Install] +WantedBy=multi-user.target diff --git a/spigot.sh b/spigot.sh new file mode 100755 index 000000000000..87eeb9e3083d --- /dev/null +++ b/spigot.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +BACKUPPATH="/srv/craftbukkit/backup/" +WORLDPATH="/srv/craftbukkit/world/" + +USER="$2" + +if [ -z $2 ]; then + USER="craftbukkit" +fi + +save_stop() { + su -s /bin/bash -c "tmux send-keys 'save-off' C-m" ${USER} + su -s /bin/bash -c "tmux send-keys 'save-all' C-m" ${USER} +} + +save_start() { + su -s /bin/bash -c "tmux send-keys 'save-on' C-m" ${USER} +} + +case "$1" in + start) + if [ -z "`pgrep -f -n 'spigot.jar'`" ]; then + sudo -u ${USER} tmux new-session -d -s spigot-console -d 'cd /srv/craftbukkit; java -Xmx1024M -Xms1024M -jar /srv/craftbukkit/spigot.jar nogui' + if [ $? -gt 0 ]; then + exit 1 + fi + else + echo "Spigot already started" + exit 1 + fi + ;; + + stop) + sudo -u ${USER} tmux send-keys -t spigot-console 'broadcast NOTICE: Server shutting down in 5 seconds!' C-m + sleep 5 + sudo -u ${USER} tmux send-keys -t spigot-console 'stop' C-m + sleep 10 + ;; + + console) + sudo -u ${USER} tmux attach -t spigot-console + ;; + + backup) + stat_busy "Starting backup" + FILE="`date +%Y%m%d%H%M`.tar.gz" + path="$BACKUPPATH/$FILE" + su -s /bin/bash -c "mkdir -p $BACKUPPATH" ${USER} + save_stop + su -s /bin/bash -c "tar -czf $path $WORLDPATH" ${USER} + save_start + stat_done "Backup finished" + ;; + + *) + echo "usage: $0 {start|backup|console} user" +esac + +exit 0 + |