#!/usr/bin/env bash set -euo pipefail apk add lavinmq lavinmq-doc lavinmq-openrc diagnose_lavinmq() { rc-service lavinmq status || true ps -ef | grep -E '[l]avinmq|start-stop' || true tail -120 /var/log/lavinmq/lavinmq.log || true } wait_for_lavinmq() { local attempt for attempt in $(seq 1 30); do if lavinmqctl --silent status >/dev/null 2>&1; then return 0 fi sleep 1 done diagnose_lavinmq >&2 return 1 } test -x /usr/bin/lavinmq test -x /usr/bin/lavinmqctl test -x /usr/bin/lavinmqperf test -f /etc/lavinmq/lavinmq.ini test -d /var/lib/lavinmq test "$(stat -c '%U:%G %a' /var/lib/lavinmq)" = "lavinmq:lavinmq 750" test -f /etc/conf.d/lavinmq test -f /etc/init.d/lavinmq test -f /usr/share/doc/lavinmq/README.md lavinmq -v lavinmqctl --version lavinmqperf --version rc-update add lavinmq default || true test -L /etc/runlevels/default/lavinmq rc-service lavinmq start rc-service lavinmq status wait_for_lavinmq test -f /var/lib/lavinmq/.lock rc-service lavinmq stop chown root:root /var/lib/lavinmq/.lock chmod 0600 /var/lib/lavinmq/.lock rc-service lavinmq start rc-service lavinmq status wait_for_lavinmq test "$(stat -c '%U:%G %a' /var/lib/lavinmq/.lock)" = "lavinmq:lavinmq 640" rc-service lavinmq stop