MCPcopy
hub / github.com/docker/compose / HandleKeyEvents

Method HandleKeyEvents

cmd/formatter/shortcut.go:313–357  ·  cmd/formatter/shortcut.go::LogKeyboard.HandleKeyEvents
(ctx context.Context, event keyboard.KeyEvent, project *types.Project, options api.UpOptions)

Source from the content-addressed store, hash-verified

311}
312
313func (lk *LogKeyboard) HandleKeyEvents(ctx context.Context, event keyboard.KeyEvent, project *types.Project, options api.UpOptions) {
314 switch kRune := event.Rune; kRune {
315 case 'd':
316 lk.clearNavigationMenu()
317 lk.Detach()
318 case 'v':
319 lk.openDockerDesktop(ctx, project)
320 case 'w':
321 if lk.Watch == nil {
322 // we try to open watch docs if DD is installed
323 if lk.IsDockerDesktopActive {
324 lk.openDDWatchDocs(ctx, project)
325 }
326 // either way we mark menu/watch as an error
327 go func() {
328 _ = tracing.EventWrapFuncForErrGroup(ctx, "menu/watch", tracing.SpanOptions{},
329 func(ctx context.Context) error {
330 err := fmt.Errorf("watch is not yet configured. Learn more: %s", ansiColor(CYAN, "https://docs.docker.com/compose/file-watch/"))
331 lk.keyboardError("Watch", err)
332 return err
333 })()
334 }()
335 }
336 lk.ToggleWatch(ctx, options)
337 case 'o':
338 lk.openDDComposeUI(ctx, project)
339 case 'l':
340 lk.openDDLogsView(ctx, project)
341 }
342 switch key := event.Key; key {
343 case keyboard.KeyCtrlC:
344 _ = keyboard.Close()
345 lk.clearNavigationMenu()
346 showCursor()
347
348 lk.logLevel = NONE
349 // will notify main thread to kill and will handle gracefully
350 lk.signalChannel <- syscall.SIGINT
351 case keyboard.KeyCtrlZ:
352 handleCtrlZ()
353 case keyboard.KeyEnter:
354 newLine()
355 lk.printNavigationMenu()
356 }
357}
358
359func (lk *LogKeyboard) EnableWatch(enabled bool, watcher Feature) {
360 lk.Watch = &KeyboardWatch{

Callers 1

UpMethod · 0.80

Calls 14

clearNavigationMenuMethod · 0.95
openDockerDesktopMethod · 0.95
openDDWatchDocsMethod · 0.95
keyboardErrorMethod · 0.95
ToggleWatchMethod · 0.95
openDDComposeUIMethod · 0.95
openDDLogsViewMethod · 0.95
printNavigationMenuMethod · 0.95
EventWrapFuncForErrGroupFunction · 0.92
ansiColorFunction · 0.85
showCursorFunction · 0.85
newLineFunction · 0.85

Tested by

no test coverage detected