@@ -136,9 +136,10 @@ func setupHelpCommand(dockerCli command.Cli, rootCmd, helpCmd *cobra.Command) {
136
136
helpCmd .Run = nil
137
137
helpCmd .RunE = func (c * cobra.Command , args []string ) error {
138
138
if len (args ) > 0 {
139
- helpcmd , err := pluginmanager .PluginRunCommand (dockerCli , args [0 ], rootCmd )
139
+ helpRunCmd , err := pluginmanager .PluginRunCommand (dockerCli , args [0 ], rootCmd )
140
+ helpcmd := command .InstrumentPluginCommand (helpRunCmd , dockerCli )
140
141
if err == nil {
141
- return helpcmd .Run ( )
142
+ return helpcmd .TimedRun ( c . Context () )
142
143
}
143
144
if ! pluginmanager .IsNotFound (err ) {
144
145
return errors .Errorf ("unknown help topic: %v" , strings .Join (args , " " ))
@@ -159,11 +160,12 @@ func tryRunPluginHelp(dockerCli command.Cli, ccmd *cobra.Command, cargs []string
159
160
if err != nil {
160
161
return err
161
162
}
162
- helpcmd , err := pluginmanager .PluginRunCommand (dockerCli , cmd .Name (), root )
163
+ helpRunCmd , err := pluginmanager .PluginRunCommand (dockerCli , cmd .Name (), root )
164
+ helpcmd := command .InstrumentPluginCommand (helpRunCmd , dockerCli )
163
165
if err != nil {
164
166
return err
165
167
}
166
- return helpcmd .Run ( )
168
+ return helpcmd .TimedRun ( ccmd . Context () )
167
169
}
168
170
169
171
func setHelpFunc (dockerCli command.Cli , cmd * cobra.Command ) {
@@ -225,10 +227,11 @@ func setValidateArgs(dockerCli command.Cli, cmd *cobra.Command) {
225
227
}
226
228
227
229
func tryPluginRun (dockerCli command.Cli , cmd * cobra.Command , subcommand string , envs []string ) error {
228
- plugincmd , err := pluginmanager .PluginRunCommand (dockerCli , subcommand , cmd )
230
+ pluginRunCmd , err := pluginmanager .PluginRunCommand (dockerCli , subcommand , cmd )
229
231
if err != nil {
230
232
return err
231
233
}
234
+ plugincmd := command .InstrumentPluginCommand (pluginRunCmd , dockerCli )
232
235
233
236
// Establish the plugin socket, adding it to the environment under a
234
237
// well-known key if successful.
@@ -279,7 +282,7 @@ func tryPluginRun(dockerCli command.Cli, cmd *cobra.Command, subcommand string,
279
282
}
280
283
}()
281
284
282
- if err := plugincmd .Run ( ); err != nil {
285
+ if err := plugincmd .TimedRun ( cmd . Context () ); err != nil {
283
286
statusCode := 1
284
287
exitErr , ok := err .(* exec.ExitError )
285
288
if ! ok {
@@ -314,6 +317,8 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
314
317
315
318
dockerCli .InstrumentCobraCommands (cmd )
316
319
320
+ cmd .SetContext (ctx )
321
+
317
322
var envs []string
318
323
args , os .Args , envs , err = processAliases (dockerCli , cmd , args , os .Args )
319
324
if err != nil {
@@ -354,7 +359,7 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
354
359
// We've parsed global args already, so reset args to those
355
360
// which remain.
356
361
cmd .SetArgs (args )
357
- err = cmd .ExecuteContext ( ctx )
362
+ err = cmd .Execute ( )
358
363
359
364
// If the command is being executed in an interactive terminal
360
365
// and hook are enabled, run the plugin hooks.
0 commit comments