#!/bin/sh
. /usr/libexec/haproxy-manager/common.sh

BASE="$(incident_dir)"
[ ! -d "$BASE" ] || BASE="$(resolve_storage_dir "$BASE")" || exit 1
LAST=""
[ ! -r "$BASE/LAST" ] || LAST="$(basename "$(sed -n '1p' "$BASE/LAST")")"

safe_field() {
	printf '%s' "$1" | tr '\t\r\n' '   '
}

count=0
for dir in $(find "$BASE" -maxdepth 1 -type d -name '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9]' 2>/dev/null | sort -r); do
	[ -d "$dir" ] || continue
	id="$(basename "$dir")"
	latest=0
	[ "$id" != "$LAST" ] || latest=1
	result="$(sed -n '1p' "$dir/result" 2>/dev/null || echo detected)"
	action="$(sed -n 's/^action=//p' "$dir/meta" 2>/dev/null | head -1)"
	interface="$(sed -n 's/^interface=//p' "$dir/meta" 2>/dev/null | head -1)"
	reason="$(sed -n 's/^reason=//p' "$dir/meta" 2>/dev/null | head -1)"
	printf 'incident\t%s\t%s\t%s\t%s\t%s\t%s\n' \
		"$id" "$latest" "$(safe_field "$result")" "$(safe_field "$action")" \
		"$(safe_field "$interface")" "$(safe_field "$reason")"
	count=$((count + 1))
	[ "$count" -lt "$INCIDENT_LIMIT" ] || break
done
