diagd: make output look good in a terminal, too
curl diagd.router7/
This commit is contained in:
parent
ffc4c21bcd
commit
e67fb4dd71
@ -26,6 +26,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"sync"
|
||||
"syscall"
|
||||
|
||||
@ -49,14 +50,18 @@ func updateListeners() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func dump(w io.Writer, re *diag.EvalResult) {
|
||||
func dump(indent int, w io.Writer, re *diag.EvalResult) {
|
||||
symbol := "✔"
|
||||
if re.Error {
|
||||
symbol = "✘"
|
||||
}
|
||||
fmt.Fprintf(w, "<li>%s %s: %s<ul>", symbol, html.EscapeString(re.Name), html.EscapeString(re.Status))
|
||||
fmt.Fprintf(w, "<li>\n%s%s %s: %s<ul>",
|
||||
strings.Repeat(" ", indent),
|
||||
symbol,
|
||||
html.EscapeString(re.Name),
|
||||
html.EscapeString(re.Status))
|
||||
for _, ch := range re.Children {
|
||||
dump(w, ch)
|
||||
dump(indent+1, w, ch)
|
||||
}
|
||||
fmt.Fprintf(w, "</ul></li>")
|
||||
}
|
||||
@ -96,7 +101,7 @@ func logic() error {
|
||||
re := m.Evaluate()
|
||||
mu.Unlock()
|
||||
fmt.Fprintf(w, `<!DOCTYPE html><style type="text/css">ul { list-style-type: none; }</style><ul>`)
|
||||
dump(w, re)
|
||||
dump(0, w, re)
|
||||
})
|
||||
http.HandleFunc("/health.json", func(w http.ResponseWriter, r *http.Request) {
|
||||
mu.Lock()
|
||||
|
@ -34,7 +34,7 @@ type ping4gw struct {
|
||||
}
|
||||
|
||||
func (d *ping4gw) String() string {
|
||||
return "ping4/<default-gateway>"
|
||||
return "ping4: $default-gateway"
|
||||
}
|
||||
|
||||
func (d *ping4gw) Then(t Node) Node {
|
||||
@ -93,7 +93,7 @@ type ping4 struct {
|
||||
}
|
||||
|
||||
func (d *ping4) String() string {
|
||||
return "ping4/" + d.addr
|
||||
return "ping4: " + d.addr
|
||||
}
|
||||
|
||||
func (d *ping4) Then(t Node) Node {
|
||||
@ -134,7 +134,7 @@ type ping6gw struct {
|
||||
}
|
||||
|
||||
func (d *ping6gw) String() string {
|
||||
return "ping6gw/<default-gateway>"
|
||||
return "ping6gw: $default-gateway"
|
||||
}
|
||||
|
||||
func (d *ping6gw) Then(t Node) Node {
|
||||
@ -198,9 +198,9 @@ type ping6 struct {
|
||||
|
||||
func (d *ping6) String() string {
|
||||
if d.ifname == "" {
|
||||
return "ping6/" + d.addr
|
||||
return "ping6: " + d.addr
|
||||
}
|
||||
return fmt.Sprintf("ping6/%s→%s", d.ifname, d.addr)
|
||||
return fmt.Sprintf("ping6: %s → %s", d.ifname, d.addr)
|
||||
}
|
||||
|
||||
func (d *ping6) Then(t Node) Node {
|
||||
|
@ -24,7 +24,7 @@ type tcp4 struct {
|
||||
}
|
||||
|
||||
func (d *tcp4) String() string {
|
||||
return "tcp4/" + d.addr
|
||||
return "tcp4: " + d.addr
|
||||
}
|
||||
|
||||
func (d *tcp4) Then(t Node) Node {
|
||||
@ -57,7 +57,7 @@ type tcp6 struct {
|
||||
}
|
||||
|
||||
func (d *tcp6) String() string {
|
||||
return "tcp6/" + d.addr
|
||||
return "tcp6: " + d.addr
|
||||
}
|
||||
|
||||
func (d *tcp6) Then(t Node) Node {
|
||||
|
Loading…
x
Reference in New Issue
Block a user