@@ -133,13 +133,20 @@ func tryRunPluginHelp(dockerCli command.Cli, ccmd *cobra.Command, cargs []string
133133func setHelpFunc (dockerCli command.Cli , cmd * cobra.Command ) {
134134 defaultHelpFunc := cmd .HelpFunc ()
135135 cmd .SetHelpFunc (func (ccmd * cobra.Command , args []string ) {
136- if pluginmanager .IsPluginCommand (ccmd ) {
136+ if err := pluginmanager .AddPluginCommandStubs (dockerCli , ccmd .Root ()); err != nil {
137+ ccmd .Println (err )
138+ return
139+ }
140+
141+ if len (args ) >= 1 {
137142 err := tryRunPluginHelp (dockerCli , ccmd , args )
143+ if err == nil {
144+ return
145+ }
138146 if ! pluginmanager .IsNotFound (err ) {
139147 ccmd .Println (err )
148+ return
140149 }
141- cmd .PrintErrf ("unknown help topic: %v\n " , ccmd .Name ())
142- return
143150 }
144151
145152 if err := isSupported (ccmd , dockerCli ); err != nil {
@@ -227,14 +234,8 @@ func runDocker(dockerCli *command.DockerCli) error {
227234 return err
228235 }
229236
230- err = pluginmanager .AddPluginCommandStubs (dockerCli , cmd )
231- if err != nil {
232- return err
233- }
234-
235237 if len (args ) > 0 {
236- ccmd , _ , err := cmd .Find (args )
237- if err != nil || pluginmanager .IsPluginCommand (ccmd ) {
238+ if _ , _ , err := cmd .Find (args ); err != nil {
238239 err := tryPluginRun (dockerCli , cmd , args [0 ], envs )
239240 if ! pluginmanager .IsNotFound (err ) {
240241 return err
0 commit comments