Add elwig-backend.service to .deb package

This commit is contained in:
2025-04-30 16:56:35 +02:00
parent 60be49d31d
commit fbb1a62284
8 changed files with 98 additions and 16 deletions

View File

@ -8,6 +8,12 @@ mkdir -p build/
mkdir -p build/usr/bin/
cp src/elwig-backend build/usr/bin
mkdir -p build/lib/systemd/system/
cp pkg/elwig-backend.service build/lib/systemd/system
mkdir -p build/etc/elwig
cp backend.sample.ini build/etc/elwig/backend.ini
mkdir -p build/DEBIAN/
echo -n "\
Package: elwig-backend
@ -17,11 +23,15 @@ Priority: optional
Essential: no
Architecture: all
Depends: python3
Installed-Size: $(du -ks build/usr/bin/ | cut -f 1)
Installed-Size: $(du -ks build/usr/bin/ build/etc/ build/lib/systemd/system/ | cut -f 1 | paste -sd+ | bc)
Maintainer: Lorenz Stechauner <lorenz.stechauner@necronda.net>
Homepage: https://git.necronda.net/winzer/elwig-backend
Description: Local backend for Elwig's REST API
" > build/DEBIAN/control
echo -n "\
/etc/elwig/backend.ini
" > build/DEBIAN/conffiles
cp pkg/postinst pkg/prerm pkg/postrm build/DEBIAN
chmod 0755 build/usr/bin/*
sudo chown root:root -R build/

13
pkg/elwig-backend.service Normal file
View File

@ -0,0 +1,13 @@
[Unit]
Description=Elwig backend
After=network.target
[Service]
RestartSec=5s
Type=simple
User=nobody
ExecStart=/usr/bin/elwig-backend /etc/elwig/backend.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target

25
pkg/postinst Executable file
View File

@ -0,0 +1,25 @@
#!/bin/sh
set -e
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask 'elwig-backend.service' >/dev/null || true
# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled 'elwig-backend.service'; then
# Enables the unit on first installation, creates new
# symlinks on upgrades if the unit file has changed.
deb-systemd-helper enable 'elwig-backend.service' >/dev/null || true
else
# Update the statefile to add new symlinks (if any), which need to be
# cleaned up on purge. Also remove old symlinks.
deb-systemd-helper update-state 'elwig-backend.service' >/dev/null || true
fi
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
if [ -n "$2" ]; then
_dh_action=restart
else
_dh_action=start
fi
deb-systemd-invoke $_dh_action 'elwig-backend.service' >/dev/null || true
fi
fi

16
pkg/postrm Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
set -e
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
if [ "$1" = "remove" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper mask 'elwig-backend.service' >/dev/null || true
fi
fi
if [ "$1" = "purge" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper purge 'elwig-backend.service' >/dev/null || true
deb-systemd-helper unmask 'elwig-backend.service' >/dev/null || true
fi
fi

5
pkg/prerm Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
set -e
if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
deb-systemd-invoke stop 'elwig-backend.service' >/dev/null || true
fi