Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / docker / cli / cli / command / container / inspect.go
1 package container
2
3 import (
4         "github.com/docker/cli/cli"
5         "github.com/docker/cli/cli/command"
6         "github.com/docker/cli/cli/command/inspect"
7         "github.com/spf13/cobra"
8         "golang.org/x/net/context"
9 )
10
11 type inspectOptions struct {
12         format string
13         size   bool
14         refs   []string
15 }
16
17 // newInspectCommand creates a new cobra.Command for `docker container inspect`
18 func newInspectCommand(dockerCli *command.DockerCli) *cobra.Command {
19         var opts inspectOptions
20
21         cmd := &cobra.Command{
22                 Use:   "inspect [OPTIONS] CONTAINER [CONTAINER...]",
23                 Short: "Display detailed information on one or more containers",
24                 Args:  cli.RequiresMinArgs(1),
25                 RunE: func(cmd *cobra.Command, args []string) error {
26                         opts.refs = args
27                         return runInspect(dockerCli, opts)
28                 },
29         }
30
31         flags := cmd.Flags()
32         flags.StringVarP(&opts.format, "format", "f", "", "Format the output using the given Go template")
33         flags.BoolVarP(&opts.size, "size", "s", false, "Display total file sizes")
34
35         return cmd
36 }
37
38 func runInspect(dockerCli *command.DockerCli, opts inspectOptions) error {
39         client := dockerCli.Client()
40         ctx := context.Background()
41
42         getRefFunc := func(ref string) (interface{}, []byte, error) {
43                 return client.ContainerInspectWithRaw(ctx, ref, opts.size)
44         }
45         return inspect.Inspect(dockerCli.Out(), opts.refs, opts.format, getRefFunc)
46 }