mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-26 05:46:59 +00:00
refactor: better systemd service (#161)
* move `pwsp-daemon.service` from `pwsp-gui/assets` to pwsp-daemon/assets + autorestart service + better logging + wait for pipewire until start * adapt all packages * improve systemd service calling for .deb package
This commit is contained in:
+2
-1
@@ -38,6 +38,7 @@ percent-encoding.workspace = true
|
||||
name = "pwsp"
|
||||
section = "sound"
|
||||
priority = "optional"
|
||||
maintainer-scripts = "maintainer-scripts"
|
||||
assets = [
|
||||
[
|
||||
"target/release/pwsp-daemon",
|
||||
@@ -65,7 +66,7 @@ assets = [
|
||||
"644",
|
||||
],
|
||||
[
|
||||
"assets/pwsp-daemon.service",
|
||||
"../pwsp-daemon/assets/pwsp-daemon.service",
|
||||
"usr/lib/systemd/user/pwsp-daemon.service",
|
||||
"644",
|
||||
],
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
[Unit]
|
||||
Description=Pipewire Soundpad Daemon
|
||||
After=pipewire.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/pwsp-daemon
|
||||
Restart=no
|
||||
RuntimeDirectory=pwsp
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
if [ -x "/usr/bin/systemctl" ]; then
|
||||
systemctl --global enable pwsp-daemon.service || true
|
||||
|
||||
for uid_dir in /run/user/*; do
|
||||
if [ -d "$uid_dir/systemd" ]; then
|
||||
uid=$(basename "$uid_dir")
|
||||
if [ "$uid" != "0" ]; then
|
||||
username=$(id -un "$uid" 2>/dev/null) || continue
|
||||
su -s /bin/sh -c "XDG_RUNTIME_DIR=$uid_dir systemctl --user daemon-reload" "$username" || true
|
||||
su -s /bin/sh -c "XDG_RUNTIME_DIR=$uid_dir systemctl --user try-restart pwsp-daemon.service" "$username" || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ "$1" = "remove" ]; then
|
||||
if [ -x "/usr/bin/systemctl" ]; then
|
||||
for uid_dir in /run/user/*; do
|
||||
if [ -d "$uid_dir/systemd" ]; then
|
||||
uid=$(basename "$uid_dir")
|
||||
if [ "$uid" != "0" ]; then
|
||||
username=$(id -un "$uid" 2>/dev/null) || continue
|
||||
su -s /bin/sh -c "XDG_RUNTIME_DIR=$uid_dir systemctl --user daemon-reload" "$username" || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
|
||||
if [ -x "/usr/bin/systemctl" ]; then
|
||||
systemctl --global disable pwsp-daemon.service || true
|
||||
|
||||
for uid_dir in /run/user/*; do
|
||||
if [ -d "$uid_dir/systemd" ]; then
|
||||
uid=$(basename "$uid_dir")
|
||||
if [ "$uid" != "0" ]; then
|
||||
username=$(id -un "$uid" 2>/dev/null) || continue
|
||||
su -s /bin/sh -c "XDG_RUNTIME_DIR=$uid_dir systemctl --user stop pwsp-daemon.service" "$username" || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user