@@ -22,6 +22,8 @@ import (
2222
2323 "github.com/spf13/cobra"
2424
25+ "github.com/containerd/log"
26+
2527 "github.com/containerd/nerdctl/v2/cmd/nerdctl/completion"
2628 containercmd "github.com/containerd/nerdctl/v2/cmd/nerdctl/container"
2729 "github.com/containerd/nerdctl/v2/cmd/nerdctl/helpers"
@@ -30,12 +32,13 @@ import (
3032 "github.com/containerd/nerdctl/v2/pkg/clientutil"
3133 "github.com/containerd/nerdctl/v2/pkg/cmd/container"
3234 "github.com/containerd/nerdctl/v2/pkg/cmd/image"
35+ "github.com/containerd/nerdctl/v2/pkg/formatter"
3336 "github.com/containerd/nerdctl/v2/pkg/idutil/containerwalker"
3437 "github.com/containerd/nerdctl/v2/pkg/idutil/imagewalker"
3538)
3639
3740func Command () * cobra.Command {
38- var cmd = & cobra.Command {
41+ cmd : = & cobra.Command {
3942 Use : "inspect" ,
4043 Short : "Return low-level information on objects." ,
4144 Args : cobra .MinimumNArgs (1 ),
@@ -79,6 +82,10 @@ func inspectAction(cmd *cobra.Command, args []string) error {
7982 }
8083 namespace := globalOptions .Namespace
8184 address := globalOptions .Address
85+ format , err := cmd .Flags ().GetString ("format" )
86+ if err != nil {
87+ return err
88+ }
8289 inspectType , err := cmd .Flags ().GetString ("type" )
8390 if err != nil {
8491 return err
@@ -130,6 +137,7 @@ func inspectAction(cmd *cobra.Command, args []string) error {
130137 }
131138
132139 var errs []error
140+ var entries []interface {}
133141 for _ , req := range args {
134142 var ni int
135143 var nc int
@@ -150,12 +158,16 @@ func inspectAction(cmd *cobra.Command, args []string) error {
150158 if ni == 0 && nc == 0 {
151159 errs = append (errs , fmt .Errorf ("no such object %s" , req ))
152160 } else if ni > 0 {
153- if err := image .Inspect (ctx , client , []string {req }, imageInspectOptions ); err != nil {
161+ if imageEntries , err := image .Inspect (ctx , client , []string {req }, imageInspectOptions ); err != nil {
154162 errs = append (errs , err )
163+ } else {
164+ entries = append (entries , imageEntries ... )
155165 }
156166 } else if nc > 0 {
157- if err := container .Inspect (ctx , client , []string {req }, containerInspectOptions ); err != nil {
167+ if containerEntries , err := container .Inspect (ctx , client , []string {req }, containerInspectOptions ); err != nil {
158168 errs = append (errs , err )
169+ } else {
170+ entries = append (entries , containerEntries ... )
159171 }
160172 }
161173 }
@@ -164,6 +176,10 @@ func inspectAction(cmd *cobra.Command, args []string) error {
164176 return fmt .Errorf ("%d errors: %v" , len (errs ), errs )
165177 }
166178
179+ if formatErr := formatter .FormatSlice (format , cmd .OutOrStdout (), entries ); formatErr != nil {
180+ log .G (ctx ).Error (formatErr )
181+ }
182+
167183 return nil
168184}
169185
0 commit comments