Sfoglia il codice sorgente

added -q flag to `docker context ls`. (This is now used in desktop e2e wsl2 tests)
See https://ci-next.docker.com/teams-desktop/blue/organizations/jenkins/desktop%2Fdesktop-test-single-branch-win/detail/desktop-test-single-branch-win/274982/pipeline/

Guillaume Tardif 5 anni fa
parent
commit
2a49c3b32f
2 ha cambiato i file con 23 aggiunte e 2 eliminazioni
  1. 15 2
      cli/cmd/context/ls.go
  2. 8 0
      tests/e2e/e2e_test.go

+ 15 - 2
cli/cmd/context/ls.go

@@ -41,20 +41,26 @@ import (
 	"github.com/docker/api/context/store"
 )
 
+type lsOpts struct {
+	quiet bool
+}
+
 func listCommand() *cobra.Command {
+	var opts lsOpts
 	cmd := &cobra.Command{
 		Use:     "list",
 		Short:   "List available contexts",
 		Aliases: []string{"ls"},
 		Args:    cobra.NoArgs,
 		RunE: func(cmd *cobra.Command, args []string) error {
-			return runList(cmd.Context())
+			return runList(cmd.Context(), opts)
 		},
 	}
+	cmd.Flags().BoolVarP(&opts.quiet, "quiet", "q", false, "Only show context names")
 	return cmd
 }
 
-func runList(ctx context.Context) error {
+func runList(ctx context.Context, opts lsOpts) error {
 	currentContext := apicontext.CurrentContext(ctx)
 	s := store.ContextStore(ctx)
 	contexts, err := s.List()
@@ -66,6 +72,13 @@ func runList(ctx context.Context) error {
 		return strings.Compare(contexts[i].Name, contexts[j].Name) == -1
 	})
 
+	if opts.quiet {
+		for _, c := range contexts {
+			fmt.Println(c.Name)
+		}
+		return nil
+	}
+
 	w := tabwriter.NewWriter(os.Stdout, 20, 1, 3, ' ', 0)
 	fmt.Fprintln(w, "NAME\tTYPE\tDESCRIPTION\tDOCKER ENDPOINT\tKUBERNETES ENDPOINT\tORCHESTRATOR")
 	format := "%s\t%s\t%s\t%s\t%s\t%s\n"

+ 8 - 0
tests/e2e/e2e_test.go

@@ -66,6 +66,14 @@ func (s *E2eSuite) TestCreateDockerContextAndListIt() {
 	golden.Assert(s.T(), output, GoldenFile("ls-out-test-docker"))
 }
 
+func (s *E2eSuite) TestContextListQuiet() {
+	s.NewDockerCommand("context", "create", "test-docker", "--from", "default").ExecOrDie()
+	output := s.NewCommand("docker", "context", "ls", "-q").ExecOrDie()
+	Expect(output).To(Equal(`default
+test-docker
+`))
+}
+
 func (s *E2eSuite) TestInspectDefaultContext() {
 	output := s.NewDockerCommand("context", "inspect", "default").ExecOrDie()
 	Expect(output).To(ContainSubstring(`"Name": "default"`))