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

This commit is contained in:
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 - src: config/ntfy.service
dst: /lib/systemd/system/ntfy.service dst: /lib/systemd/system/ntfy.service
scripts: scripts:
postinstall: "scripts/postinst.sh"
preremove: "scripts/prerm.sh"
postremove: "scripts/postrm.sh" postremove: "scripts/postrm.sh"
archives: archives:
- -

19
scripts/postinst.sh Executable file
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 #!/bin/sh
set -eu set -e
systemctl stop ntfy >/dev/null 2>&1 || true
# Delete the config if package is purged
if [ "$1" = "purge" ]; then if [ "$1" = "purge" ]; then
rm -rf /etc/ntfy echo "Deleting /etc/ntfy ..."
rm -rf /etc/ntfy || true
fi fi

12
scripts/prerm.sh Executable file
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