make deb builds dist/jarl_<version>_<arch>.deb with dpkg-deb alone (no root), for the host or another architecture (DEB_ARCH=arm64). The package creates the jarl user and directories and an example jarl.yaml on the first install, restarts a running jarld on upgrades, never touches /etc/jarl/jarl.yaml, stops jarld on removal, and keeps Jarl's data even on purge. make install and the package install bash completion for jarl and jarld. Besides commands and flags it completes server and group names from the CLI configuration, zone, view, ACL, TSIG key and user names from the server, and record types. make dist includes the completion scripts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
1.3 KiB
Bash
Executable File
39 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Jarl: runs after the package's files are in place.
|
|
set -e
|
|
|
|
if [ "$1" = configure ]; then
|
|
# The jarl system user (a member of group bind) and Jarl's directories:
|
|
# /etc/jarl, /var/lib/jarl, /etc/bind/jarl, /var/lib/bind/jarl,
|
|
# /var/cache/bind/jarl and /var/log/named.
|
|
systemd-sysusers jarl.conf
|
|
systemd-tmpfiles --create jarl.conf || true
|
|
|
|
# An example configuration on the first install; an existing one is
|
|
# never touched.
|
|
if [ ! -e /etc/jarl/jarl.yaml ]; then
|
|
/usr/bin/jarld config --example > /etc/jarl/jarl.yaml.dpkg-new
|
|
chown root:jarl /etc/jarl/jarl.yaml.dpkg-new
|
|
chmod 0640 /etc/jarl/jarl.yaml.dpkg-new
|
|
mv /etc/jarl/jarl.yaml.dpkg-new /etc/jarl/jarl.yaml
|
|
fi
|
|
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl daemon-reload || true
|
|
# An upgrade restarts a running jarld (its database is upgraded
|
|
# when it starts). A first install starts nothing: Jarl needs
|
|
# 'jarld init' and 'jarld adopt' first.
|
|
if [ -n "$2" ] && systemctl is-active --quiet jarl.service; then
|
|
systemctl restart jarl.service || echo "jarl: restarting jarld failed; see 'journalctl -u jarl'" >&2
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$2" ]; then
|
|
echo "Jarl is installed. Next: create the database and adopt your BIND"
|
|
echo "configuration, as described in /usr/share/doc/jarl/docs/install.md"
|
|
echo "(from step 3), then: systemctl enable --now jarl"
|
|
fi
|
|
fi
|
|
|
|
exit 0
|