MCPcopy
hub / github.com/yusing/godoxy / DebugHandler

Function DebugHandler

internal/idlewatcher/handle_http_debug.go:15–67  ·  view source on GitHub ↗
(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

13)
14
15func DebugHandler(rw http.ResponseWriter, r *http.Request) {
16 w := &Watcher{
17 events: gevents.NewHistory(),
18 cfg: &types.IdlewatcherConfig{
19 IdlewatcherProviderConfig: types.IdlewatcherProviderConfig{
20 Docker: &types.DockerConfig{
21 ContainerName: "test",
22 },
23 },
24 },
25 }
26
27 switch r.URL.Path {
28 case idlewatcher.LoadingPageCSSPath:
29 serveStaticContent(rw, http.StatusOK, "text/css", cssBytes)
30 case idlewatcher.LoadingPageJSPath:
31 serveStaticContent(rw, http.StatusOK, "application/javascript", jsBytes)
32 case idlewatcher.WakeEventsPath:
33 go w.handleWakeEventsSSE(rw, r)
34 ticker := time.NewTicker(1 * time.Second)
35 defer ticker.Stop()
36 eventTypes := []WakeEventType{
37 WakeEventStarting,
38 WakeEventWakingDep,
39 WakeEventDepReady,
40 WakeEventContainerWoke,
41 WakeEventWaitingReady,
42 WakeEventError,
43 WakeEventReady,
44 }
45 messages := []string{
46 "Starting",
47 "Waking dependency",
48 "Dependency ready",
49 "Container woke",
50 "Waiting for ready",
51 "Error",
52 "Ready",
53 }
54
55 for {
56 select {
57 case <-r.Context().Done():
58 return
59 case <-ticker.C:
60 idx := rand.IntN(len(eventTypes))
61 w.sendEvent(eventTypes[idx], messages[idx], nil)
62 }
63 }
64 default:
65 _ = w.writeLoadingPage(rw)
66 }
67}

Callers

nothing calls this directly

Calls 5

handleWakeEventsSSEMethod · 0.95
sendEventMethod · 0.95
writeLoadingPageMethod · 0.95
serveStaticContentFunction · 0.85
ContextMethod · 0.65

Tested by

no test coverage detected