Merge pull request #6081 from thaJeztah/unify_cli_opts
cli/command, cli-plugins/plugin: some cleanups in WithInitializeClient, withPluginClientConn
This commit is contained in:
commit
d1857decba
@ -109,7 +109,7 @@ func Run(makeCmd func(command.Cli) *cobra.Command, meta metadata.Metadata) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func withPluginClientConn(name string) command.CLIOption {
|
func withPluginClientConn(name string) command.CLIOption {
|
||||||
return command.WithInitializeClient(func(dockerCli *command.DockerCli) (client.APIClient, error) {
|
return func(cli *command.DockerCli) error {
|
||||||
cmd := "docker"
|
cmd := "docker"
|
||||||
if x := os.Getenv(metadata.ReexecEnvvar); x != "" {
|
if x := os.Getenv(metadata.ReexecEnvvar); x != "" {
|
||||||
cmd = x
|
cmd = x
|
||||||
@ -133,11 +133,14 @@ func withPluginClientConn(name string) command.CLIOption {
|
|||||||
|
|
||||||
helper, err := connhelper.GetCommandConnectionHelper(cmd, flags...)
|
helper, err := connhelper.GetCommandConnectionHelper(cmd, flags...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return err
|
||||||
}
|
}
|
||||||
|
apiClient, err := client.NewClientWithOpts(client.WithDialContext(helper.Dialer))
|
||||||
return client.NewClientWithOpts(client.WithDialContext(helper.Dialer))
|
if err != nil {
|
||||||
})
|
return err
|
||||||
|
}
|
||||||
|
return command.WithAPIClient(apiClient)(cli)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newPluginCommand(dockerCli *command.DockerCli, plugin *cobra.Command, meta metadata.Metadata) *cli.TopLevelCommand {
|
func newPluginCommand(dockerCli *command.DockerCli, plugin *cobra.Command, meta metadata.Metadata) *cli.TopLevelCommand {
|
||||||
|
@ -222,15 +222,6 @@ func (cli *DockerCli) HooksEnabled() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithInitializeClient is passed to DockerCli.Initialize by callers who wish to set a particular API Client for use by the CLI.
|
|
||||||
func WithInitializeClient(makeClient func(dockerCli *DockerCli) (client.APIClient, error)) CLIOption {
|
|
||||||
return func(dockerCli *DockerCli) error {
|
|
||||||
var err error
|
|
||||||
dockerCli.client, err = makeClient(dockerCli)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize the dockerCli runs initialization that must happen after command
|
// Initialize the dockerCli runs initialization that must happen after command
|
||||||
// line flags are parsed.
|
// line flags are parsed.
|
||||||
func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption) error {
|
func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption) error {
|
||||||
|
@ -114,6 +114,18 @@ func WithAPIClient(c client.APIClient) CLIOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithInitializeClient is passed to [DockerCli.Initialize] to initialize
|
||||||
|
// an API Client for use by the CLI.
|
||||||
|
func WithInitializeClient(makeClient func(*DockerCli) (client.APIClient, error)) CLIOption {
|
||||||
|
return func(cli *DockerCli) error {
|
||||||
|
c, err := makeClient(cli)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return WithAPIClient(c)(cli)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// envOverrideHTTPHeaders is the name of the environment-variable that can be
|
// envOverrideHTTPHeaders is the name of the environment-variable that can be
|
||||||
// used to set custom HTTP headers to be sent by the client. This environment
|
// used to set custom HTTP headers to be sent by the client. This environment
|
||||||
// variable is the equivalent to the HttpHeaders field in the configuration
|
// variable is the equivalent to the HttpHeaders field in the configuration
|
||||||
|
Loading…
x
Reference in New Issue
Block a user