📦 — Add a make target for Debian packaging
This commit is contained in:
parent
7afe7e9b6f
commit
9d847657d1
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
||||
/reaction*.sock
|
||||
/result
|
||||
/wiki
|
||||
*.deb
|
||||
|
9
DEBIAN/control
Normal file
9
DEBIAN/control
Normal file
@ -0,0 +1,9 @@
|
||||
Package: reaction
|
||||
Version: LAST_TAG
|
||||
Architecture: amd64
|
||||
Maintainer: ppom <>
|
||||
Sections: utils
|
||||
Package-Type: deb
|
||||
Priority: Optional
|
||||
Homepage: https://framagit.org/ppom/reaction
|
||||
Description: A daemon that scans program outputs for repeated patterns, and takes action.
|
56
DEBIAN/postinst
Executable file
56
DEBIAN/postinst
Executable file
@ -0,0 +1,56 @@
|
||||
#! /bin/sh
|
||||
# postinst script for reaction
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
#
|
||||
|
||||
case "$1" in
|
||||
configure|abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||
# The following line should be removed in trixie or trixie+1
|
||||
deb-systemd-helper unmask 'reaction.service' >/dev/null || true
|
||||
|
||||
# was-enabled defaults to true, so new installations run enable.
|
||||
if deb-systemd-helper --quiet was-enabled 'reaction.service'; then
|
||||
# Enables the unit on first installation, creates new
|
||||
# symlinks on upgrades if the unit file has changed.
|
||||
deb-systemd-helper enable 'reaction.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 'reaction.service' >/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||
if [ -d /run/systemd/system ]; then
|
||||
systemctl --system daemon-reload >/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
exit 0
|
40
DEBIAN/postrm
Executable file
40
DEBIAN/postrm
Executable file
@ -0,0 +1,40 @@
|
||||
#! /bin/sh
|
||||
# postrm script for reaction
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
|
||||
# for details, see /usr/doc/packaging-manual/
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge|disappear)
|
||||
# Remove configuration
|
||||
rm -f /etc/reaction.yml
|
||||
# Remove database
|
||||
rm -f /var/lib/reaction/*
|
||||
;;
|
||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade)
|
||||
# nothing
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
|
||||
systemctl --system daemon-reload >/dev/null || true
|
||||
fi
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
if [ -x "/usr/bin/deb-systemd-helper" ]; then
|
||||
deb-systemd-helper purge 'reaction.service' >/dev/null || true
|
||||
fi
|
||||
fi
|
6
DEBIAN/prerm
Executable file
6
DEBIAN/prerm
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
|
||||
deb-systemd-invoke stop 'reaction.service' >/dev/null || true
|
||||
fi
|
15
Makefile
15
Makefile
@ -1,9 +1,22 @@
|
||||
all: reaction ip46tables
|
||||
|
||||
clean:
|
||||
rm -f reaction ip46tables
|
||||
rm -f reaction ip46tables reaction.deb
|
||||
|
||||
ip46tables: ip46tables.d/ip46tables.c
|
||||
gcc -static ip46tables.d/ip46tables.c -o ip46tables
|
||||
|
||||
reaction: app/* reaction.go go.mod go.sum
|
||||
CGO_ENABLED=0 go build -buildvcs=false .
|
||||
|
||||
reaction.deb: reaction ip46tables
|
||||
chmod +x reaction ip46tables
|
||||
mkdir -p deb/reaction/usr/bin/ deb/reaction/usr/sbin/ deb/reaction/lib/systemd/system/
|
||||
cp reaction deb/reaction/usr/bin/
|
||||
cp ip46tables deb/reaction/usr/sbin/
|
||||
cp reaction.service deb/reaction/lib/systemd/system/
|
||||
cp -r DEBIAN/ deb/reaction/DEBIAN
|
||||
sed -e "s/LAST_TAG/`git tag --sort=v:refname | tail -n1`/" -e "s/Version: v/Version: /" -i deb/reaction/DEBIAN/*
|
||||
cd deb && dpkg-deb --root-owner-group --build reaction
|
||||
mv deb/reaction.deb reaction.deb
|
||||
rm -rf deb/
|
||||
|
12
reaction.service
Normal file
12
reaction.service
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=A daemon that scans program outputs for repeated patterns, and takes action.
|
||||
Documentation=https://framagit.org/ppom/reaction-wiki
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/reaction start -c /etc/reaction.yml
|
||||
StateDirectory=reaction
|
||||
RuntimeDirectory=reaction
|
||||
WorkingDirectory=/var/lib/reaction
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user