From c24eefbb51f121d79b635a89ca992f415a94f388 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 26 Jun 2018 21:52:29 +0200 Subject: [PATCH] diagd: expose machine-readable healthiness --- cmd/diagd/diagd.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cmd/diagd/diagd.go b/cmd/diagd/diagd.go index 312a65f..2ba2c06 100644 --- a/cmd/diagd/diagd.go +++ b/cmd/diagd/diagd.go @@ -2,6 +2,7 @@ package main import ( + "encoding/json" "flag" "fmt" "html" @@ -46,6 +47,18 @@ func dump(w io.Writer, re *diag.EvalResult) { fmt.Fprintf(w, "") } +func firstError(re *diag.EvalResult) string { + if re.Error { + return fmt.Sprintf("%s: %s", re.Name, re.Status) + } + for _, ch := range re.Children { + if msg := firstError(ch); msg != "" { + return msg + } + } + return "" +} + func logic() error { const ( uplink = "uplink0" /* enp0s31f6 */ @@ -71,6 +84,22 @@ func logic() error { fmt.Fprintf(w, `