浏览代码

Merge pull request #1339 from docker/experimental

only display experimental warning on command error
Guillaume Tardif 4 年之前
父节点
当前提交
98dc2308d9
共有 2 个文件被更改,包括 10 次插入3 次删除
  1. 5 3
      cli/cmd/compose/compose.go
  2. 5 0
      cli/main.go

+ 5 - 3
cli/cmd/compose/compose.go

@@ -17,8 +17,6 @@
 package compose
 
 import (
-	"fmt"
-
 	"github.com/compose-spec/compose-go/cli"
 	"github.com/compose-spec/compose-go/types"
 	"github.com/spf13/cobra"
@@ -27,6 +25,9 @@ import (
 	"github.com/docker/compose-cli/api/context/store"
 )
 
+// Warning is a global warning to be displayed to user on command failure
+var Warning string
+
 type projectOptions struct {
 	ProjectName string
 	Profiles    []string
@@ -99,7 +100,8 @@ func Command(contextType string) *cobra.Command {
 		TraverseChildren: true,
 		PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
 			if contextType == store.DefaultContextType || contextType == store.LocalContextType {
-				fmt.Println("The new 'docker compose' command is currently experimental. To provide feedback or request new features please open issues at https://github.com/docker/compose-cli")
+				Warning = "The new 'docker compose' command is currently experimental. " +
+					"To provide feedback or request new features please open issues at https://github.com/docker/compose-cli"
 			}
 			return nil
 		},

+ 5 - 0
cli/main.go

@@ -258,6 +258,11 @@ func exit(ctx string, err error, ctype string) {
 		fmt.Fprintln(os.Stderr, err)
 		os.Exit(errdefs.ExitCodeLoginRequired)
 	}
+
+	if compose.Warning != "" {
+		fmt.Fprintln(os.Stderr, compose.Warning)
+	}
+
 	if errors.Is(err, errdefs.ErrNotImplemented) {
 		name := metrics.GetCommand(os.Args[1:])
 		fmt.Fprintf(os.Stderr, "Command %q not available in current context (%s)\n", name, ctx)