diff --git a/cli/cmd/context/ls.go b/cli/cmd/context/ls.go index 9d409296..935488c4 100644 --- a/cli/cmd/context/ls.go +++ b/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" diff --git a/cli/cmd/version.go b/cli/cmd/version.go index 53df5c75..01c4e120 100644 --- a/cli/cmd/version.go +++ b/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 { diff --git a/local/e2e/backend_test.go b/local/e2e/backend_test.go index 653a045f..d2015c2d 100644 --- a/local/e2e/backend_test.go +++ b/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() { diff --git a/tests/e2e/e2e_test.go b/tests/e2e/e2e_test.go index 63008999..55fc7fd3 100644 --- a/tests/e2e/e2e_test.go +++ b/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() {