mirror of https://github.com/docker/compose.git
Merge pull request #264 from docker/context_ls_format
Allow --format on docker context ls. Fixing VS Code extension shellout
This commit is contained in:
commit
5da31da05b
|
@ -17,7 +17,6 @@
|
||||||
package context
|
package context
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
@ -27,14 +26,16 @@ import (
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"github.com/docker/api/cli/mobycli"
|
||||||
apicontext "github.com/docker/api/context"
|
apicontext "github.com/docker/api/context"
|
||||||
"github.com/docker/api/context/store"
|
"github.com/docker/api/context/store"
|
||||||
"github.com/docker/api/formatter"
|
"github.com/docker/api/formatter"
|
||||||
)
|
)
|
||||||
|
|
||||||
type lsOpts struct {
|
type lsOpts struct {
|
||||||
quiet bool
|
quiet bool
|
||||||
json bool
|
json bool
|
||||||
|
format string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o lsOpts) validate() error {
|
func (o lsOpts) validate() error {
|
||||||
|
@ -52,21 +53,26 @@ func listCommand() *cobra.Command {
|
||||||
Aliases: []string{"ls"},
|
Aliases: []string{"ls"},
|
||||||
Args: cobra.NoArgs,
|
Args: cobra.NoArgs,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runList(cmd.Context(), opts)
|
return runList(cmd, opts)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
cmd.Flags().BoolVarP(&opts.quiet, "quiet", "q", false, "Only show context names")
|
cmd.Flags().BoolVarP(&opts.quiet, "quiet", "q", false, "Only show context names")
|
||||||
cmd.Flags().BoolVar(&opts.json, "json", false, "Format output as JSON")
|
cmd.Flags().BoolVar(&opts.json, "json", false, "Format output as JSON")
|
||||||
|
cmd.Flags().StringVar(&opts.format, "format", "", "Format output as JSON")
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
func runList(ctx context.Context, opts lsOpts) error {
|
func runList(cmd *cobra.Command, opts lsOpts) error {
|
||||||
err := opts.validate()
|
err := opts.validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if opts.format != "" {
|
||||||
|
return mobycli.ExecCmd(cmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx := cmd.Context()
|
||||||
currentContext := apicontext.CurrentContext(ctx)
|
currentContext := apicontext.CurrentContext(ctx)
|
||||||
s := store.ContextStore(ctx)
|
s := store.ContextStore(ctx)
|
||||||
contexts, err := s.List()
|
contexts, err := s.List()
|
||||||
|
|
|
@ -80,6 +80,12 @@ func (s *E2eSuite) TestInspectContextRegardlessCurrentContext() {
|
||||||
Expect(output).To(ContainSubstring(`"Name": "localCtx"`))
|
Expect(output).To(ContainSubstring(`"Name": "localCtx"`))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *E2eSuite) TestContextLsFormat() {
|
||||||
|
output, err := s.NewDockerCommand("context", "ls", "--format", "{{ json . }}").Exec()
|
||||||
|
Expect(err).To(BeNil())
|
||||||
|
Expect(output).To(ContainSubstring(`"Name":"default"`))
|
||||||
|
}
|
||||||
|
|
||||||
func (s *E2eSuite) TestContextCreateParseErrorDoesNotDelegateToLegacy() {
|
func (s *E2eSuite) TestContextCreateParseErrorDoesNotDelegateToLegacy() {
|
||||||
It("should dispay new cli error when parsing context create flags", func() {
|
It("should dispay new cli error when parsing context create flags", func() {
|
||||||
_, err := s.NewDockerCommand("context", "create", "aci", "--subscription-id", "titi").Exec()
|
_, err := s.NewDockerCommand("context", "create", "aci", "--subscription-id", "titi").Exec()
|
||||||
|
|
Loading…
Reference in New Issue