@@ -31,6 +31,7 @@ import (
31
31
"github.com/docker/index-cli-plugin/query"
32
32
"github.com/docker/index-cli-plugin/sbom"
33
33
"github.com/docker/index-cli-plugin/types"
34
+ "github.com/docker/index-cli-plugin/util"
34
35
v1 "github.com/google/go-containerregistry/pkg/v1"
35
36
"github.com/moby/term"
36
37
"github.com/pkg/errors"
@@ -57,10 +58,14 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
57
58
}
58
59
59
60
skill .Log .SetOutput (os .Stderr )
60
- skill .Log .SetFormatter (& logrus.TextFormatter {
61
- DisableTimestamp : true ,
62
- DisableLevelTruncation : true ,
63
- })
61
+ if dockerCli .Out ().IsTerminal () {
62
+ skill .Log .SetFormatter (& logrus.TextFormatter {
63
+ DisableTimestamp : true ,
64
+ DisableLevelTruncation : true ,
65
+ })
66
+ } else {
67
+ skill .Log .SetFormatter (& logrus.JSONFormatter {})
68
+ }
64
69
65
70
config := dockerCli .ConfigFile ()
66
71
@@ -112,9 +117,9 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
112
117
var sb * types.Sbom
113
118
114
119
if ociDir == "" {
115
- sb , _ , err = sbom .IndexImage (image , dockerCli . Client () )
120
+ sb , _ , err = sbom .IndexImage (image , dockerCli )
116
121
} else {
117
- sb , _ , err = sbom .IndexPath (ociDir , image )
122
+ sb , _ , err = sbom .IndexPath (ociDir , image , dockerCli )
118
123
}
119
124
if err != nil {
120
125
return err
@@ -175,9 +180,9 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
175
180
var sb * types.Sbom
176
181
var img * v1.Image
177
182
if ociDir == "" {
178
- sb , img , err = sbom .IndexImage (image , dockerCli . Client () )
183
+ sb , img , err = sbom .IndexImage (image , dockerCli )
179
184
} else {
180
- sb , img , err = sbom .IndexPath (ociDir , image )
185
+ sb , img , err = sbom .IndexPath (ociDir , image , dockerCli )
181
186
}
182
187
if err != nil {
183
188
return err
@@ -206,9 +211,9 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
206
211
var img * v1.Image
207
212
208
213
if ociDir == "" {
209
- sb , img , err = sbom .IndexImage (image , dockerCli . Client () )
214
+ sb , img , err = sbom .IndexImage (image , dockerCli )
210
215
} else {
211
- sb , img , err = sbom .IndexPath (ociDir , image )
216
+ sb , img , err = sbom .IndexPath (ociDir , image , dockerCli )
212
217
}
213
218
if err != nil {
214
219
return err
@@ -246,7 +251,7 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
246
251
}
247
252
248
253
// see if the package comes in via the base image
249
- s := StartInfoSpinner ("Detecting base image" )
254
+ s := util . StartInfoSpinner ("Detecting base image" , dockerCli . Out (). IsTerminal () )
250
255
defer s .Stop ()
251
256
baseImages , index , _ := query .Detect (img , true , workspace , apiKey )
252
257
s .Stop ()
@@ -261,7 +266,7 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
261
266
}
262
267
263
268
if baseImage != nil {
264
- s := StartInfoSpinner ("Finding alternative base images" )
269
+ s := util . StartInfoSpinner ("Finding alternative base images" , dockerCli . Out (). IsTerminal () )
265
270
defer s .Stop ()
266
271
aBaseImage , _ := query .ForBaseImageWithoutCve (c .SourceId , baseImage .Repository .Name , img , workspace , apiKey )
267
272
s .Stop ()
@@ -294,7 +299,7 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman
294
299
Use : "diff [OPTIONS]" ,
295
300
Short : "Diff images" ,
296
301
RunE : func (cmd * cobra.Command , args []string ) error {
297
- return sbom .DiffImages (args [0 ], args [1 ], dockerCli . Client () , "" , "" )
302
+ return sbom .DiffImages (args [0 ], args [1 ], dockerCli , "" , "" )
298
303
},
299
304
}
300
305
0 commit comments