MCPcopy
hub / github.com/fabiolb/fabio / logRoutes

Function logRoutes

main.go:654–691  ·  view source on GitHub ↗
(t route.Table, last, next, format string)

Source from the content-addressed store, hash-verified

652}
653
654func logRoutes(t route.Table, last, next, format string) {
655 fmtDiff := func(diffs []dmp.Diff) string {
656 var b bytes.Buffer
657 for _, d := range diffs {
658 t := strings.TrimSpace(d.Text)
659 if t == "" {
660 continue
661 }
662 switch d.Type {
663 case dmp.DiffDelete:
664 b.WriteString("- ")
665 b.WriteString(strings.ReplaceAll(t, "\n", "\n- "))
666 case dmp.DiffInsert:
667 b.WriteString("+ ")
668 b.WriteString(strings.ReplaceAll(t, "\n", "\n+ "))
669 }
670 }
671 return b.String()
672 }
673
674 const defFormat = "delta"
675 switch format {
676 case "detail":
677 log.Printf("[INFO] Updated config to\n%s", t.Dump())
678
679 case "delta":
680 if delta := fmtDiff(dmp.New().DiffMain(last, next, true)); delta != "" {
681 log.Printf("[INFO] Config updates\n%s", delta)
682 }
683
684 case "all":
685 log.Printf("[INFO] Updated config to\n%s", next)
686
687 default:
688 log.Printf("[WARN] Invalid route format %q. Defaulting to %q", format, defFormat)
689 logRoutes(t, last, next, defFormat)
690 }
691}
692
693func toJSON(v any) string {
694 data, err := json.MarshalIndent(v, "", " ")

Callers 1

watchBackendFunction · 0.85

Calls 2

DumpMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected