Forráskód Böngészése

Merge pull request #229 from docker/context_ls_q

added -q flag to `docker context ls`.
Guillaume Tardif 5 éve
szülő
commit
505b6a90c8
4 módosított fájl, 26 hozzáadás és 8 törlés
  1. 15 2
      cli/cmd/context/ls.go
  2. 1 1
      cli/cmd/version.go
  3. 1 3
      local/e2e/backend_test.go
  4. 9 2
      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"

+ 1 - 1
cli/cmd/version.go

@@ -9,7 +9,7 @@ import (
 	"github.com/docker/api/cli/dockerclassic"
 )
 
-const cliVersion = "1.0.0-beta"
+const cliVersion = "0.1.0"
 
 // VersionCommand command to display version
 func VersionCommand() *cobra.Command {

+ 1 - 3
local/e2e/backend_test.go

@@ -1,7 +1,6 @@
 package e2e
 
 import (
-	"strings"
 	"testing"
 
 	"github.com/stretchr/testify/assert"
@@ -36,8 +35,7 @@ func (m *LocalBackendTestSuite) TestRun() {
 	defer func() {
 		m.NewDockerCommand("rm", "-f", "nginx").ExecOrDie()
 	}()
-	lines := strings.Split(out, "\n")
-	assert.Equal(m.T(), 3, len(lines))
+	assert.Contains(m.T(), out, "nginx")
 }
 
 func (m *LocalBackendTestSuite) TestRunWithPorts() {

+ 9 - 2
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"`))
@@ -158,8 +166,7 @@ func (s *E2eSuite) TestDisplayFriendlyErrorMessageForLegacyCommands() {
 
 func (s *E2eSuite) TestDisplaysAdditionalLineInDockerVersion() {
 	output := s.NewDockerCommand("version").ExecOrDie()
-	Expect(output).To(ContainSubstring(`Azure integration  1.0.0-beta
- Version:          `))
+	Expect(output).To(ContainSubstring("Azure integration"))
 }
 
 func (s *E2eSuite) TestMockBackend() {