#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BIN="$ROOT/target/release/rustbox" if [ "$(id -u)" -ne 0 ]; then echo "error: run as root (sudo ./scripts/install-systemd.sh)" >&2 exit 1 fi if [ ! -x "$BIN" ]; then echo "error: $BIN not found; run ./scripts/build-release.sh first" >&2 exit 1 fi getent group rustbox >/dev/null || groupadd --system rustbox id rustbox >/dev/null 2>&1 || useradd --system --gid rustbox --home-dir /var/lib/rustbox --shell /usr/sbin/nologin rustbox install -d -o rustbox -g rustbox -m 0750 /etc/rustbox install -d -o rustbox -g rustbox -m 0700 /var/lib/rustbox install -d -o rustbox -g rustbox -m 0750 /var/log/rustbox install -m 0755 "$BIN" /usr/local/bin/rustbox install -m 0644 "$ROOT/packaging/systemd/rustbox.service" /etc/systemd/system/rustbox.service install -m 0644 "$ROOT/packaging/logrotate/rustbox" /etc/logrotate.d/rustbox if [ ! -f /etc/rustbox/rustbox.toml ]; then install -o rustbox -g rustbox -m 0640 "$ROOT/packaging/rustbox.toml" /etc/rustbox/rustbox.toml else chown rustbox:rustbox /etc/rustbox/rustbox.toml chmod 0640 /etc/rustbox/rustbox.toml fi RUSTBOX_CONFIG=/etc/rustbox/rustbox.toml /usr/local/bin/rustbox --check-config systemctl daemon-reload echo "Installed. Review /etc/rustbox/rustbox.toml, then: systemctl enable --now rustbox"