Add the EDS calendar bridge
This commit is contained in:
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
fail() {
|
||||
printf 'calendar agenda helper contract: %s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
project_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
helper="$project_root/config/dot/quickshell/scripts/calendar-agenda"
|
||||
|
||||
[[ -x "$helper" ]] || fail 'helper is missing or not executable'
|
||||
|
||||
probe="$($helper probe)"
|
||||
jq -e '.eds == true and .sourceRegistry == true and .enabledSources > 0' <<<"$probe" >/dev/null \
|
||||
|| fail 'EDS readiness probe failed'
|
||||
|
||||
range_start="$(date +%s)"
|
||||
range_end="$((range_start + 1209600))"
|
||||
snapshot="$($helper query "$range_start" "$range_end")"
|
||||
|
||||
jq -e '
|
||||
.ok == true and
|
||||
(.sources | type == "array" and length > 0) and
|
||||
(.events | type == "array") and
|
||||
([.sources[] | (keys | sort) == (["id", "name", "color"] | sort)] | all) and
|
||||
([.events[] | (keys | sort) == (["id", "sourceId", "uid", "summary", "start", "end", "allDay", "location", "joinUrl"] | sort)] | all)
|
||||
' <<<"$snapshot" >/dev/null || fail 'live snapshot shape is invalid'
|
||||
|
||||
printf 'calendar agenda helper contract: PASS (%s sources, %s events; contents redacted)\n' \
|
||||
"$(jq '.sources | length' <<<"$snapshot")" \
|
||||
"$(jq '.events | length' <<<"$snapshot")"
|
||||
Reference in New Issue
Block a user