Pārlūkot izejas kodu

Add open watch docs in up menu

Signed-off-by: Joana Hrotko <[email protected]>
Joana Hrotko 1 gadu atpakaļ
vecāks
revīzija
de478f84b0
1 mainītis faili ar 19 papildinājumiem un 0 dzēšanām
  1. 19 0
      cmd/formatter/shortcut.go

+ 19 - 0
cmd/formatter/shortcut.go

@@ -261,6 +261,19 @@ func (lk *LogKeyboard) openDDComposeUI(ctx context.Context, project *types.Proje
 		}),
 	)
 }
+func (lk *LogKeyboard) openDDWatchDocs(ctx context.Context, project *types.Project) {
+	eg.Go(tracing.EventWrapFuncForErrGroup(ctx, "menu/gui/watch", tracing.SpanOptions{},
+		func(ctx context.Context) error {
+			link := fmt.Sprintf("docker-desktop://dashboard/docker-compose/%s/watch", project.Name)
+			err := open.Run(link)
+			if err != nil {
+				err = fmt.Errorf("Could not open Docker Desktop Compose UI")
+				lk.keyboardError("Watch Docs", err)
+			}
+			return err
+		}),
+	)
+}
 
 func (lk *LogKeyboard) keyboardError(prefix string, err error) {
 	lk.kError.addError(prefix, err)
@@ -275,6 +288,11 @@ func (lk *LogKeyboard) keyboardError(prefix string, err error) {
 
 func (lk *LogKeyboard) StartWatch(ctx context.Context, doneCh chan bool, project *types.Project, options api.UpOptions) {
 	if !lk.IsWatchConfigured {
+		if lk.IsDDComposeUIActive {
+			// we try to open watch docs
+			lk.openDDWatchDocs(ctx, project)
+		}
+		// either way we mark menu/watch as an error
 		eg.Go(tracing.EventWrapFuncForErrGroup(ctx, "menu/watch", tracing.SpanOptions{},
 			func(ctx context.Context) error {
 				err := fmt.Errorf("Watch is not yet configured. Learn more: %s", ansiColor(CYAN, "https://docs.docker.com/compose/file-watch/"))
@@ -282,6 +300,7 @@ func (lk *LogKeyboard) StartWatch(ctx context.Context, doneCh chan bool, project
 				return err
 			}))
 		return
+
 	}
 	lk.Watch.switchWatching()
 	if !lk.Watch.isWatching() {