#!/bin/sh
# yambar `svc` segment feed: services health summary from sysop.
#
# Emits one yambar record per second:
#   state|string|ok            (all up)
#   state|string|down          (some down)
#   count|string|<N>           (count of down services, only on `down`)
#
# Routes operator into `sysop services` when state != ok.

set -eu

while :; do
    summary="$(sysop services --summary 2>/dev/null || echo 'down')"
    case "$summary" in
        ok)
            printf 'state|string|ok\n\n'
            ;;
        *' down')
            count="${summary% down}"
            printf 'state|string|down\ncount|string|%s\n\n' "$count"
            ;;
        *)
            printf 'state|string|down\ncount|string|?\n\n'
            ;;
    esac
    sleep 5
done
