@@ -31,7 +31,6 @@ import (
31
31
"github.com/docker/buildx/util/logutil"
32
32
dockercli "github.com/docker/cli/cli"
33
33
"github.com/docker/cli/cli-plugins/manager"
34
- "github.com/docker/cli/cli/command"
35
34
"github.com/morikuni/aec"
36
35
"github.com/pkg/errors"
37
36
"github.com/sirupsen/logrus"
@@ -91,7 +90,7 @@ func Adapt(fn Command) func(cmd *cobra.Command, args []string) error {
91
90
})
92
91
}
93
92
94
- type projectOptions struct {
93
+ type ProjectOptions struct {
95
94
ProjectName string
96
95
Profiles []string
97
96
ConfigPaths []string
@@ -108,16 +107,16 @@ type ProjectFunc func(ctx context.Context, project *types.Project) error
108
107
type ProjectServicesFunc func (ctx context.Context , project * types.Project , services []string ) error
109
108
110
109
// WithProject creates a cobra run command from a ProjectFunc based on configured project options and selected services
111
- func (o * projectOptions ) WithProject (fn ProjectFunc ) func (cmd * cobra.Command , args []string ) error {
110
+ func (o * ProjectOptions ) WithProject (fn ProjectFunc ) func (cmd * cobra.Command , args []string ) error {
112
111
return o .WithServices (func (ctx context.Context , project * types.Project , services []string ) error {
113
112
return fn (ctx , project )
114
113
})
115
114
}
116
115
117
116
// WithServices creates a cobra run command from a ProjectFunc based on configured project options and selected services
118
- func (o * projectOptions ) WithServices (fn ProjectServicesFunc ) func (cmd * cobra.Command , args []string ) error {
117
+ func (o * ProjectOptions ) WithServices (fn ProjectServicesFunc ) func (cmd * cobra.Command , args []string ) error {
119
118
return Adapt (func (ctx context.Context , args []string ) error {
120
- project , err := o .toProject (args , cli .WithResolvedPaths (true ))
119
+ project , err := o .ToProject (args , cli .WithResolvedPaths (true ))
121
120
if err != nil {
122
121
return err
123
122
}
@@ -126,7 +125,7 @@ func (o *projectOptions) WithServices(fn ProjectServicesFunc) func(cmd *cobra.Co
126
125
})
127
126
}
128
127
129
- func (o * projectOptions ) addProjectFlags (f * pflag.FlagSet ) {
128
+ func (o * ProjectOptions ) addProjectFlags (f * pflag.FlagSet ) {
130
129
f .StringArrayVar (& o .Profiles , "profile" , []string {}, "Specify a profile to enable" )
131
130
f .StringVarP (& o .ProjectName , "project-name" , "p" , "" , "Project name" )
132
131
f .StringArrayVarP (& o .ConfigPaths , "file" , "f" , []string {}, "Compose configuration files" )
@@ -137,11 +136,11 @@ func (o *projectOptions) addProjectFlags(f *pflag.FlagSet) {
137
136
_ = f .MarkHidden ("workdir" )
138
137
}
139
138
140
- func (o * projectOptions ) projectOrName (services ... string ) (* types.Project , string , error ) {
139
+ func (o * ProjectOptions ) projectOrName (services ... string ) (* types.Project , string , error ) {
141
140
name := o .ProjectName
142
141
var project * types.Project
143
142
if len (o .ConfigPaths ) > 0 || o .ProjectName == "" {
144
- p , err := o .toProject (services )
143
+ p , err := o .ToProject (services )
145
144
if err != nil {
146
145
envProjectName := os .Getenv ("COMPOSE_PROJECT_NAME" )
147
146
if envProjectName != "" {
@@ -155,7 +154,7 @@ func (o *projectOptions) projectOrName(services ...string) (*types.Project, stri
155
154
return project , name , nil
156
155
}
157
156
158
- func (o * projectOptions ) toProjectName () (string , error ) {
157
+ func (o * ProjectOptions ) toProjectName () (string , error ) {
159
158
if o .ProjectName != "" {
160
159
return o .ProjectName , nil
161
160
}
@@ -165,14 +164,14 @@ func (o *projectOptions) toProjectName() (string, error) {
165
164
return envProjectName , nil
166
165
}
167
166
168
- project , err := o .toProject (nil )
167
+ project , err := o .ToProject (nil )
169
168
if err != nil {
170
169
return "" , err
171
170
}
172
171
return project .Name , nil
173
172
}
174
173
175
- func (o * projectOptions ) toProject (services []string , po ... cli.ProjectOptionsFn ) (* types.Project , error ) {
174
+ func (o * ProjectOptions ) ToProject (services []string , po ... cli.ProjectOptionsFn ) (* types.Project , error ) {
176
175
options , err := o .toProjectOptions (po ... )
177
176
if err != nil {
178
177
return nil , compose .WrapComposeError (err )
@@ -222,7 +221,7 @@ func (o *projectOptions) toProject(services []string, po ...cli.ProjectOptionsFn
222
221
return project , err
223
222
}
224
223
225
- func (o * projectOptions ) toProjectOptions (po ... cli.ProjectOptionsFn ) (* cli.ProjectOptions , error ) {
224
+ func (o * ProjectOptions ) toProjectOptions (po ... cli.ProjectOptionsFn ) (* cli.ProjectOptions , error ) {
226
225
return cli .NewProjectOptions (o .ConfigPaths ,
227
226
append (po ,
228
227
cli .WithWorkingDirectory (o .ProjectDir ),
@@ -243,7 +242,7 @@ func RunningAsStandalone() bool {
243
242
}
244
243
245
244
// RootCommand returns the compose command with its child commands
246
- func RootCommand (dockerCli command. Cli , backend api.Service ) * cobra.Command { //nolint:gocyclo
245
+ func RootCommand (streams api. Streams , backend api.Service ) * cobra.Command { //nolint:gocyclo
247
246
// filter out useless commandConn.CloseWrite warning message that can occur
248
247
// when using a remote context that is unreachable: "commandConn.CloseWrite: commandconn: failed to wait: signal: killed"
249
248
// https://github.com/docker/cli/blob/e1f24d3c93df6752d3c27c8d61d18260f141310c/cli/connhelper/commandconn/commandconn.go#L203-L215
@@ -254,7 +253,7 @@ func RootCommand(dockerCli command.Cli, backend api.Service) *cobra.Command { //
254
253
"commandConn.CloseRead:" ,
255
254
))
256
255
257
- opts := projectOptions {}
256
+ opts := ProjectOptions {}
258
257
var (
259
258
ansi string
260
259
noAnsi bool
@@ -305,7 +304,7 @@ func RootCommand(dockerCli command.Cli, backend api.Service) *cobra.Command { //
305
304
if verbose {
306
305
logrus .SetLevel (logrus .TraceLevel )
307
306
}
308
- formatter .SetANSIMode (ansi )
307
+ formatter .SetANSIMode (streams , ansi )
309
308
switch ansi {
310
309
case "never" :
311
310
progress .Mode = progress .ModePlain
@@ -333,27 +332,27 @@ func RootCommand(dockerCli command.Cli, backend api.Service) *cobra.Command { //
333
332
}
334
333
335
334
c .AddCommand (
336
- upCommand (& opts , backend ),
335
+ upCommand (& opts , streams , backend ),
337
336
downCommand (& opts , backend ),
338
337
startCommand (& opts , backend ),
339
338
restartCommand (& opts , backend ),
340
339
stopCommand (& opts , backend ),
341
- psCommand (& opts , backend ),
342
- listCommand (backend ),
343
- logsCommand (& opts , backend ),
344
- convertCommand (& opts , backend ),
340
+ psCommand (& opts , streams , backend ),
341
+ listCommand (streams , backend ),
342
+ logsCommand (& opts , streams , backend ),
343
+ convertCommand (& opts , streams , backend ),
345
344
killCommand (& opts , backend ),
346
- runCommand (& opts , dockerCli , backend ),
345
+ runCommand (& opts , streams , backend ),
347
346
removeCommand (& opts , backend ),
348
- execCommand (& opts , dockerCli , backend ),
347
+ execCommand (& opts , streams , backend ),
349
348
pauseCommand (& opts , backend ),
350
349
unpauseCommand (& opts , backend ),
351
- topCommand (& opts , backend ),
352
- eventsCommand (& opts , backend ),
353
- portCommand (& opts , backend ),
354
- imagesCommand (& opts , backend ),
350
+ topCommand (& opts , streams , backend ),
351
+ eventsCommand (& opts , streams , backend ),
352
+ portCommand (& opts , streams , backend ),
353
+ imagesCommand (& opts , streams , backend ),
355
354
versionCommand (),
356
- buildCommand (& opts , backend ),
355
+ buildCommand (& opts , streams , backend ),
357
356
pushCommand (& opts , backend ),
358
357
pullCommand (& opts , backend ),
359
358
createCommand (& opts , backend ),
@@ -383,7 +382,7 @@ func RootCommand(dockerCli command.Cli, backend api.Service) *cobra.Command { //
383
382
return c
384
383
}
385
384
386
- func setEnvWithDotEnv (prjOpts * projectOptions ) error {
385
+ func setEnvWithDotEnv (prjOpts * ProjectOptions ) error {
387
386
options , err := prjOpts .toProjectOptions ()
388
387
if err != nil {
389
388
return compose .WrapComposeError (err )
0 commit comments