mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-09-10 18:34:18 +08:00
29 lines
1.0 KiB
Bash
Executable File
29 lines
1.0 KiB
Bash
Executable File
#!/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
|