Properly handle systemd start/stop during Debian package install, closes #30

pull/29/head
Philipp Heckel 2021-12-04 15:32:21 -05:00
parent 07a1fe3acb
commit 6fbbb0c7b5
4 changed files with 38 additions and 3 deletions

View File

@ -53,6 +53,8 @@ nfpms:
- src: config/ntfy.service
dst: /lib/systemd/system/ntfy.service
scripts:
postinstall: "scripts/postinst.sh"
preremove: "scripts/prerm.sh"
postremove: "scripts/postrm.sh"
archives:
-

View File

@ -0,0 +1,19 @@
#!/bin/sh
set -e
# Restart systemd service if it was already running. Note that "deb-systemd-invoke try-restart" will
# only act if the service is already running. If it's not running, it's a no-op.
#
# TODO: This is only tested on Debian.
#
if [ "$1" = "configure" ] && [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
if systemctl is-active -q ntfy.service; then
echo "Restarting ntfy.service ..."
if [ -x /usr/bin/deb-systemd-invoke ]; then
deb-systemd-invoke try-restart ntfy.service >/dev/null || true
else
systemctl restart ntfy.service >/dev/null || true
fi
fi
fi

View File

@ -1,6 +1,8 @@
#!/bin/sh
set -eu
systemctl stop ntfy >/dev/null 2>&1 || true
set -e
# Delete the config if package is purged
if [ "$1" = "purge" ]; then
rm -rf /etc/ntfy
echo "Deleting /etc/ntfy ..."
rm -rf /etc/ntfy || true
fi

12
scripts/prerm.sh 100755
View File

@ -0,0 +1,12 @@
#!/bin/sh
set -e
# Stop systemd service
if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
echo "Stopping ntfy.service ..."
if [ -x /usr/bin/deb-systemd-invoke ]; then
deb-systemd-invoke stop 'ntfy.service' >/dev/null || true
else
systemctl stop ntfy >/dev/null 2>&1 || true
fi
fi