diff --git a/docs/yaml/generate.go b/docs/yaml/generate.go index c37ad64498..09550b2fad 100644 --- a/docs/yaml/generate.go +++ b/docs/yaml/generate.go @@ -22,6 +22,7 @@ func generateCliYaml(opts *options) error { dockerCli := command.NewDockerCli(stdin, stdout, stderr, false, nil) cmd := &cobra.Command{Use: "docker"} commands.AddCommands(cmd, dockerCli) + disableFlagsInUseLine(cmd) source := filepath.Join(opts.source, descriptionSourcePath) if err := loadLongDescription(cmd, source); err != nil { return err @@ -31,6 +32,23 @@ func generateCliYaml(opts *options) error { return GenYamlTree(cmd, opts.target) } +func disableFlagsInUseLine(cmd *cobra.Command) { + visitAll(cmd, func(ccmd *cobra.Command) { + // do not add a `[flags]` to the end of the usage line. + ccmd.DisableFlagsInUseLine = true + }) +} + +// visitAll will traverse all commands from the root. +// This is different from the VisitAll of cobra.Command where only parents +// are checked. +func visitAll(root *cobra.Command, fn func(*cobra.Command)) { + for _, cmd := range root.Commands() { + visitAll(cmd, fn) + } + fn(root) +} + func loadLongDescription(cmd *cobra.Command, path ...string) error { for _, cmd := range cmd.Commands() { if cmd.Name() == "" {