diff options
author | Mike Cooper | 2015-08-13 23:21:02 -0700 |
---|---|---|
committer | Mike Cooper | 2015-08-13 23:21:02 -0700 |
commit | f852c1e211906109bdd59ce2e51659bd87d0b9e3 (patch) | |
tree | ccfe7bc34d7a1a32ff86dbc261d087d57e316fe5 | |
download | aur-f852c1e211906109bdd59ce2e51659bd87d0b9e3.tar.gz |
Initial commit.
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 42 | ||||
-rwxr-xr-x | terraria-server | 5 | ||||
-rw-r--r-- | terraria-server.install | 24 | ||||
-rw-r--r-- | terraria-server@.service | 14 |
6 files changed, 109 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..b9de9a7b3db7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,20 @@ +pkgbase = terraria-server + pkgdesc = Official dedicated server for Terraria + pkgver = 1.3.0.8 + pkgrel = 1 + url = https://terraria.org/ + install = terraria-server.install + arch = x86_64 + arch = x86 + license = unknown + depends = mono + depends = screen + source = http://terraria.org/server/terraria-server-linux-1308.tar.gz + source = terraria-server + source = terraria-server@.service + sha256sums = 0ab1ee17d78ae1ec039363519840cb1651c6aa22f5a76f014d9cfdca4fb7a333 + sha256sums = 8a7e23efe3f72d8c88024cf32e53daa4b293bb2b17070dbf80e86876af1e22f9 + sha256sums = 47b5b370da9f29a3d95bda3770c7bad3c2b3122361d17860fa7d7824051ae2a6 + +pkgname = terraria-server + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..08e0b6321bc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/pkg/ +/src/ +/terraria-server-*.pkg.tar.xz +/terraria-server-linux-*.tar.gz diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..f140eead6301 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Mike Cooper <mythmon@elem.us> + +pkgname=terraria-server +pkgver=1.3.0.8 +pkgrel=1 +pkgdesc="Official dedicated server for Terraria" +arch=('x86_64' 'x86') +license=('unknown') +url="https://terraria.org/" +depends=('mono' 'screen') +install='terraria-server.install' + +_pkgver=$(echo $pkgver | sed 's/\.//g') + +source=("http://terraria.org/server/${pkgname}-linux-${_pkgver}.tar.gz" + 'terraria-server' + 'terraria-server@.service') + +sha256sums=('0ab1ee17d78ae1ec039363519840cb1651c6aa22f5a76f014d9cfdca4fb7a333' + '8a7e23efe3f72d8c88024cf32e53daa4b293bb2b17070dbf80e86876af1e22f9' + '47b5b370da9f29a3d95bda3770c7bad3c2b3122361d17860fa7d7824051ae2a6') + +package() { + cd "${srcdir}/${pkgname}-linux-${_pkgver}/" + dest="${pkgdir}/opt/terraria-server" + install -o 197 -g 197 -d "${dest}" + install -m644 FNA.dll "${dest}/" + install -m644 FNA.dll.config "${dest}/" + install -m644 Ionic.Zip.CF.dll "${dest}/" + install -m644 Newtonsoft.Json.dll "${dest}/" + install -m644 TerrariaServer.exe "${dest}/" + install -m755 TerrariaServer.bin.${CARCH} "${dest}/" + + cd "${srcdir}" + install -d "${pkgdir}/usr/bin/" + install -m755 terraria-server "${pkgdir}/usr/bin/" + install -d "${pkgdir}/usr/lib/systemd/system/" + install -m755 terraria-server@.service "${pkgdir}/usr/lib/systemd/system/" + + install -o 197 -g 196 -d "${pkgdir}/etc/terraria-server/" + install -o 197 -g 197 -d "${pkgdir}/var/lib/terraria-server/" +} diff --git a/terraria-server b/terraria-server new file mode 100755 index 000000000000..2697eee5af8a --- /dev/null +++ b/terraria-server @@ -0,0 +1,5 @@ +#!/bin/bash +cd /opt/terraria-server +export MONO_IOMAP=all +arch=$(uname -m) +./TerrariaServer.bin.${arch} "$@" diff --git a/terraria-server.install b/terraria-server.install new file mode 100644 index 000000000000..bc061aef95a4 --- /dev/null +++ b/terraria-server.install @@ -0,0 +1,24 @@ +post_install() { + if ! getent group terraria &>/dev/null; then + groupadd -r -g 197 terraria >/dev/null + fi + + if ! getent passwd terraria &>/dev/null; then + useradd -r -u 197 -g terraria -d /var/lib/terraria-server/ \ + -s /bin/bash terraria >/dev/null + fi +} + +post_upgrade() { + post_install +} + +post_remove() { + if getent passwd terraria &>/dev/null; then + userdel terraria >/dev/null + fi + + if getent group terraria &>/dev/null; then + groupdel terrara >/dev/null + fi +} diff --git a/terraria-server@.service b/terraria-server@.service new file mode 100644 index 000000000000..a5b0f559e49c --- /dev/null +++ b/terraria-server@.service @@ -0,0 +1,14 @@ +[Unit] +Description=Terraria server %i +After=network.target + +[Service] +User=terraria +ExecStart=/usr/bin/screen -DmS terraria-%i /usr/bin/terraria-server -config /etc/terraria-server/%i.conf +ExecStop=/usr/bin/screen -p 0 -S terraria-%i -X eval 'stuff "say Server shutting down. Saving world."\\015' +ExecStop=/usr/bin/screen -p 0 -S terraria-%i -X eval 'stuff "save"\\015' +ExecStop=/usr/bin/screen -p 0 -S terraria-%i -X eval 'stuff "exit"\\015' +ExecStop=/usr/bin/sh -c 'while screen -ls | grep 'terraria-test' >/dev/null; do sleep 0.1; done' + +[Install] +WantedBy=multi-user.target |