github.com/khulnasoft/cli@v0.0.0-20240402070845-01bcad7beefa/cli/command/volume/inspect.go (about) 1 // FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: 2 //go:build go1.19 3 4 package volume 5 6 import ( 7 "context" 8 9 "github.com/khulnasoft/cli/cli" 10 "github.com/khulnasoft/cli/cli/command" 11 "github.com/khulnasoft/cli/cli/command/completion" 12 "github.com/khulnasoft/cli/cli/command/inspect" 13 flagsHelper "github.com/khulnasoft/cli/cli/flags" 14 "github.com/spf13/cobra" 15 ) 16 17 type inspectOptions struct { 18 format string 19 names []string 20 } 21 22 func newInspectCommand(dockerCli command.Cli) *cobra.Command { 23 var opts inspectOptions 24 25 cmd := &cobra.Command{ 26 Use: "inspect [OPTIONS] VOLUME [VOLUME...]", 27 Short: "Display detailed information on one or more volumes", 28 Args: cli.RequiresMinArgs(1), 29 RunE: func(cmd *cobra.Command, args []string) error { 30 opts.names = args 31 return runInspect(cmd.Context(), dockerCli, opts) 32 }, 33 ValidArgsFunction: completion.VolumeNames(dockerCli), 34 } 35 36 cmd.Flags().StringVarP(&opts.format, "format", "f", "", flagsHelper.InspectFormatHelp) 37 38 return cmd 39 } 40 41 func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) error { 42 client := dockerCli.Client() 43 44 getVolFunc := func(name string) (any, []byte, error) { 45 i, err := client.VolumeInspect(ctx, name) 46 return i, nil, err 47 } 48 49 return inspect.Inspect(dockerCli.Out(), opts.names, opts.format, getVolFunc) 50 }