MCPcopy
hub / github.com/perkeep/perkeep / InitHandler

Method InitHandler

pkg/server/status.go:71–94  ·  view source on GitHub ↗
(hl blobserver.FindHandlerByTyper)

Source from the content-addressed store, hash-verified

69}
70
71func (sh *StatusHandler) InitHandler(hl blobserver.FindHandlerByTyper) error {
72 _, h, err := hl.FindHandlerByType("search")
73 if err == blobserver.ErrHandlerTypeNotFound {
74 return nil
75 }
76 if err != nil {
77 return err
78 }
79 go func() {
80 var lastSend *status
81 for {
82 cur := sh.currentStatus()
83 if reflect.DeepEqual(cur, lastSend) {
84 // TODO: something better. get notified on interesting events.
85 time.Sleep(10 * time.Second)
86 continue
87 }
88 lastSend = cur
89 js, _ := json.MarshalIndent(cur, "", " ")
90 h.(*search.Handler).SendStatusUpdate(js)
91 }
92 }()
93 return nil
94}
95
96func (sh *StatusHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
97 suffix := httputil.PathSuffix(req)

Callers

nothing calls this directly

Calls 3

currentStatusMethod · 0.95
SendStatusUpdateMethod · 0.80
FindHandlerByTypeMethod · 0.65

Tested by

no test coverage detected