31 lines
1.1 KiB
Bash
Executable File
31 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "$0")" && pwd)
|
|
HOLDER="$SCRIPT_DIR/mosaic-tmux-holder.service"
|
|
AGENT="$SCRIPT_DIR/mosaic-agent@.service"
|
|
|
|
fail() {
|
|
echo "FAIL: $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
[ -f "$HOLDER" ] || fail "missing mosaic-tmux-holder.service"
|
|
[ -f "$AGENT" ] || fail "missing mosaic-agent@.service"
|
|
|
|
grep -qF 'ExecStart=' "$HOLDER" || fail "holder has no ExecStart"
|
|
grep -qF 'tmux -L' "$HOLDER" || fail "holder does not use named tmux socket"
|
|
grep -qF '_holder' "$HOLDER" || fail "holder session is not explicit"
|
|
grep -qF 'Requires=mosaic-tmux-holder.service' "$AGENT" || fail "agent does not require holder"
|
|
grep -qF 'start-agent-session.sh' "$AGENT" || fail "agent unit does not call start-agent-session.sh"
|
|
grep -qF 'kill-session -t "=%i"' "$AGENT" || fail "agent stop does not exact-match its session"
|
|
|
|
if command -v systemd-analyze >/dev/null 2>&1; then
|
|
systemd-analyze verify --user "$HOLDER" "$AGENT" >/tmp/mosaic-fleet-systemd-verify.log 2>&1 || {
|
|
cat /tmp/mosaic-fleet-systemd-verify.log >&2
|
|
fail "systemd-analyze verify failed"
|
|
}
|
|
fi
|
|
|
|
echo "ok - fleet systemd unit templates"
|