From dc7ec4bfc042cee5fc4dcd95383943b6bb6a5fd4 Mon Sep 17 00:00:00 2001 From: Rafael Baboni Dominiquini Date: Fri, 11 Apr 2025 21:47:27 -0300 Subject: [PATCH] using systemd service templates, to avoid the need to edit the service everytime the package is updated --- contrib/package/arch/PKGBUILD | 7 ++----- .../arch/{copyparty.service => copyparty@.service} | 8 +++----- .../arch/{prisonparty.service => prisonparty@.service} | 9 +++++---- 3 files changed, 10 insertions(+), 14 deletions(-) rename contrib/package/arch/{copyparty.service => copyparty@.service} (86%) rename contrib/package/arch/{prisonparty.service => prisonparty@.service} (88%) diff --git a/contrib/package/arch/PKGBUILD b/contrib/package/arch/PKGBUILD index 7849aad1..6604819d 100644 --- a/contrib/package/arch/PKGBUILD +++ b/contrib/package/arch/PKGBUILD @@ -42,16 +42,13 @@ package() { install -dm755 "${pkgdir}/etc/${pkgname}.d" install -Dm755 "bin/prisonparty.sh" "${pkgdir}/usr/bin/prisonparty" install -Dm644 "contrib/package/arch/${pkgname}.conf" "${pkgdir}/etc/${pkgname}.d/init" - install -Dm644 "contrib/package/arch/${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" - install -Dm644 "contrib/package/arch/prisonparty.service" "${pkgdir}/usr/lib/systemd/system/prisonparty.service" + install -Dm644 "contrib/package/arch/${pkgname}@.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}@.service" + install -Dm644 "contrib/package/arch/prisonparty@.service" "${pkgdir}/usr/lib/systemd/system/prisonparty@.service" install -Dm644 "contrib/package/arch/index.md" "${pkgdir}/var/lib/${pkgname}-jail/README.md" install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" find /etc/${pkgname}.d -iname '*.conf' 2>/dev/null | grep -qE . && return echo "┏━━━━━━━━━━━━━━━──-" echo "┃ Configure ${pkgname} by adding .conf files into /etc/${pkgname}.d/" - echo "┃ and maybe copy+edit one of the following to /etc/systemd/system/:" - echo "┣━♦ /usr/lib/systemd/system/${pkgname}.service (standard)" - echo "┣━♦ /usr/lib/systemd/system/prisonparty.service (chroot)" echo "┗━━━━━━━━━━━━━━━──-" } diff --git a/contrib/package/arch/copyparty.service b/contrib/package/arch/copyparty@.service similarity index 86% rename from contrib/package/arch/copyparty.service rename to contrib/package/arch/copyparty@.service index 22dac3d6..0837c821 100644 --- a/contrib/package/arch/copyparty.service +++ b/contrib/package/arch/copyparty@.service @@ -1,9 +1,6 @@ # this will start `/usr/bin/copyparty-sfx.py` # and read config from `/etc/copyparty.d/*.conf` # -# you probably want to: -# change "User=cpp" and "/home/cpp/" to another user -# # unless you add -q to disable logging, you may want to remove the # following line to allow buffering (slightly better performance): # Environment=PYTHONUNBUFFERED=x @@ -19,8 +16,9 @@ WorkingDirectory=/var/lib/copyparty-jail ExecReload=/bin/kill -s USR1 $MAINPID # user to run as + where the TLS certificate is (if any) -User=cpp -Environment=XDG_CONFIG_HOME=/home/cpp/.config +User=%I +Group=%I +Environment=XDG_CONFIG_HOME=/home/%I/.config # stop systemd-tmpfiles-clean.timer from deleting copyparty while it's running ExecStartPre=+/bin/bash -c 'mkdir -p /run/tmpfiles.d/ && echo "x /tmp/pe-copyparty*" > /run/tmpfiles.d/copyparty.conf' diff --git a/contrib/package/arch/prisonparty.service b/contrib/package/arch/prisonparty@.service similarity index 88% rename from contrib/package/arch/prisonparty.service rename to contrib/package/arch/prisonparty@.service index cd35ba99..d91693f6 100644 --- a/contrib/package/arch/prisonparty.service +++ b/contrib/package/arch/prisonparty@.service @@ -3,9 +3,7 @@ # and read copyparty config from `/etc/copyparty.d/*.conf` # # expose additional filesystem locations to copyparty -# by listing them between the last `cpp` and `--` -# -# `cpp cpp` = user/group to run copyparty as; can be IDs (1000 1000) +# by listing them between the last `%I` and `--` # # unless you add -q to disable logging, you may want to remove the # following line to allow buffering (slightly better performance): @@ -20,11 +18,14 @@ Environment=PYTHONUNBUFFERED=x WorkingDirectory=/var/lib/copyparty-jail ExecReload=/bin/kill -s USR1 $MAINPID +User=%I +Group=%I + # stop systemd-tmpfiles-clean.timer from deleting copyparty while it's running ExecStartPre=+/bin/bash -c 'mkdir -p /run/tmpfiles.d/ && echo "x /tmp/pe-copyparty*" > /run/tmpfiles.d/copyparty.conf' # run copyparty -ExecStart=/bin/bash /usr/bin/prisonparty /var/lib/copyparty-jail cpp cpp \ +ExecStart=/bin/bash /usr/bin/prisonparty /var/lib/copyparty-jail %I %I \ /etc/copyparty.d \ -- \ /usr/bin/python3 /usr/bin/copyparty -c /etc/copyparty.d/init