diff options
author | Sebastien Duthil | 2016-03-19 15:54:19 -0400 |
---|---|---|
committer | Sebastien Duthil | 2016-03-19 15:57:26 -0400 |
commit | 064a76e0f6f842381a47c3446e39fdfb68472436 (patch) | |
tree | d1ba3a2a7e9862b4f18ebdce4a08e066cb8cb128 | |
parent | 2f5f863d927d7b3973b4b3a8c2f21a2e40953391 (diff) | |
download | aur-064a76e0f6f842381a47c3446e39fdfb68472436.tar.gz |
add user factorio + service file
-rw-r--r-- | .SRCINFO | 9 | ||||
-rw-r--r-- | PKGBUILD | 27 | ||||
-rw-r--r-- | factorio-headless.conf | 11 | ||||
-rw-r--r-- | factorio-headless.install | 12 | ||||
-rw-r--r-- | factorio-headless.service | 17 | ||||
-rw-r--r-- | factorio-headless.sysusers | 1 |
6 files changed, 66 insertions, 11 deletions
@@ -1,16 +1,23 @@ pkgbase = factorio-headless pkgdesc = A 2D game about building and maintaining factories - Server version pkgver = 0.12.26 - pkgrel = 3 + pkgrel = 4 url = http://www.factorio.com/ + install = factorio-headless.install arch = x86_64 license = custom: commercial conflicts = factorio conflicts = factorio-demo conflicts = factorio-experimental source = LICENSE + source = factorio-headless.service + source = factorio-headless.conf + source = factorio-headless.sysusers source = factorio_headless_x64_0.12.26.tar.gz::http://www.factorio.com/get-download/0.12.26/headless/linux64 sha256sums = 67ec2f88afff5d7e0ca5fd3301b5d98655269c161a394368fa0ec49fbc0c0e21 + sha256sums = 7ba176d90c55c86312f59aa664cbe33e72dea2fc88a746f0c3029cee84837ab6 + sha256sums = 082f6da53d1a90c2aa040e35d8912b02084c7d2011c9f8d784487723e05597dc + sha256sums = 87dae15d1bcfb4683faea9c66498bd916bd27f8aa0dc724c4e21076dcf17da64 sha256sums = a7891432c675cc9ac3577c627e348d5f0aca9c06478a659a4e703f5813c79dad pkgname = factorio-headless @@ -1,31 +1,38 @@ # Maintainer: Sebastien Duthil <duthils@free.fr> +# Inspiration for service and config files: https://github.com/Bisa/factorio-init pkgname=factorio-headless pkgver=0.12.26 -pkgrel=3 +pkgrel=4 pkgdesc="A 2D game about building and maintaining factories - Server version" arch=('x86_64') url="http://www.factorio.com/" license=('custom: commercial') conflicts=('factorio' 'factorio-demo' 'factorio-experimental') +install=factorio-headless.install source=(LICENSE + factorio-headless.service + factorio-headless.conf + factorio-headless.sysusers factorio_headless_x64_${pkgver}.tar.gz::http://www.factorio.com/get-download/${pkgver}/headless/linux64) sha256sums=('67ec2f88afff5d7e0ca5fd3301b5d98655269c161a394368fa0ec49fbc0c0e21' + '7ba176d90c55c86312f59aa664cbe33e72dea2fc88a746f0c3029cee84837ab6' + '082f6da53d1a90c2aa040e35d8912b02084c7d2011c9f8d784487723e05597dc' + '87dae15d1bcfb4683faea9c66498bd916bd27f8aa0dc724c4e21076dcf17da64' 'a7891432c675cc9ac3577c627e348d5f0aca9c06478a659a4e703f5813c79dad') + # no modifications needed, the executable looks for: # - data in /usr/share/factorio # - config in ~/.factorio package() { - cd "$srcdir/factorio" - - install -d "${pkgdir}/usr/bin" - install -d "${pkgdir}/usr/share/applications" - install -g games -m 775 -d "${pkgdir}/usr/share/factorio" - install -d "${pkgdir}/usr/share/licenses/factorio" + install -Dm755 "${srcdir}/factorio/bin/x64/factorio" "$pkgdir/usr/bin/factorio" + install -d "${pkgdir}/usr/share/factorio" + cp -r "${srcdir}/factorio/data"/* "${pkgdir}/usr/share/factorio" + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/factorio-headless/LICENSE" - install -m755 "bin/x64/factorio" "$pkgdir/usr/bin/factorio" - cp -r data/* "$pkgdir/usr/share/factorio" - install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/factorio/LICENSE" + install -Dm644 "${srcdir}/factorio-headless.sysusers" "$pkgdir/usr/lib/sysusers.d/factorio.conf" + install -Dm644 "${srcdir}/factorio-headless.conf" "${pkgdir}/etc/conf.d/factorio" + install -Dm644 "${srcdir}/factorio-headless.service" "${pkgdir}/usr/lib/systemd/system/factorio.service" } diff --git a/factorio-headless.conf b/factorio-headless.conf new file mode 100644 index 000000000000..85bb7125e83e --- /dev/null +++ b/factorio-headless.conf @@ -0,0 +1,11 @@ +# The latency expected between peers (milliseconds) +# Try to set this to the highest latency + 30 +# If peers A and B have a latency of 100 between each other, set this to 130 +LATENCY=250 + +# The number of minutes between each autosave +AUTOSAVE_INTERVAL=10 +# The number of autosaves to use for rotation +AUTOSAVE_SLOTS=3 + +SAVE_NAME=factorio-service-save diff --git a/factorio-headless.install b/factorio-headless.install new file mode 100644 index 000000000000..7ec95408ea66 --- /dev/null +++ b/factorio-headless.install @@ -0,0 +1,12 @@ +post_install() { + systemd-sysusers factorio.conf + [[ -d /var/lib/factorio ]] || install -dm 770 -o factorio -g games /var/lib/factorio + + # create empty game + [[ -f /var/lib/factorio/.factorio/saves/factorio-service-save.zip ]] || su - factorio -s /bin/sh -c 'factorio --create factorio-service-save 2>&1 >/dev/null' +} + +post_upgrade() { + (( $(vercmp $2 '0.12.26-4') < 0 )) && chown -R root:root /usr/share/factorio || true + (( $(vercmp $2 '0.12.26-4') < 0 )) && post_install "$1" || true +} diff --git a/factorio-headless.service b/factorio-headless.service new file mode 100644 index 000000000000..f6240a6a9ec2 --- /dev/null +++ b/factorio-headless.service @@ -0,0 +1,17 @@ +[Unit] +Description=Factorio game headless server +Documentation=http://www.factorio.com/ +After=network.target + +[Service] +User=factorio +EnvironmentFile=/etc/conf.d/factorio +TimeoutStartSec=5 +ExecStart=/usr/bin/factorio --start-server $SAVE_NAME --autosave-interval $AUTOSAVE_INTERVAL --autosave-slots $AUTOSAVE_SLOTS --latency-ms $LATENCY --disallow-commands --peer-to-peer +TimeoutStopSec=10 +KillSignal=SIGINT +RestartSec=10 +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/factorio-headless.sysusers b/factorio-headless.sysusers new file mode 100644 index 000000000000..92ebe87c59b3 --- /dev/null +++ b/factorio-headless.sysusers @@ -0,0 +1 @@ +u factorio - "Factorio daemon user" /var/lib/factorio |