(f *cmdutil.Factory, command *cobra.Command, args []string)
| 64 | } |
| 65 | |
| 66 | func rootHelpFunc(f *cmdutil.Factory, command *cobra.Command, args []string) { |
| 67 | cs := f.IOStreams.ColorScheme() |
| 68 | |
| 69 | if isRootCmd(command.Parent()) && len(args) >= 2 && args[1] != "--help" && args[1] != "-h" { |
| 70 | nestedSuggestFunc(f.IOStreams, command, args[1]) |
| 71 | hasFailed = true |
| 72 | return |
| 73 | } |
| 74 | |
| 75 | longText := command.Long |
| 76 | if longText == "" { |
| 77 | longText = command.Short |
| 78 | } |
| 79 | |
| 80 | helpEntries := cmdutil.UsageEntries{} |
| 81 | if longText != "" { |
| 82 | helpEntries.AddEntry(cmdutil.UsageEntry{Title: "", Body: longText}) |
| 83 | } |
| 84 | |
| 85 | helpEntries.AddBasicUsage(f.IOStreams, command) |
| 86 | |
| 87 | categoryFlagSet := cmdutil.NewCategoryFlagSet(command.LocalFlags()) |
| 88 | if len(categoryFlagSet.Categories) > 0 { |
| 89 | for _, categoryName := range categoryFlagSet.SortedCategoryNames() { |
| 90 | groupName := fmt.Sprintf("%s Flags", categoryName) |
| 91 | helpEntries.AddEntry( |
| 92 | cmdutil.UsageEntry{ |
| 93 | Title: groupName, |
| 94 | Body: cmdutil.Dedent(categoryFlagSet.Categories[categoryName].FlagUsages()), |
| 95 | }, |
| 96 | ) |
| 97 | } |
| 98 | if categoryFlagSet.Others.FlagUsages() != "" { |
| 99 | helpEntries.AddEntry( |
| 100 | cmdutil.UsageEntry{ |
| 101 | Title: cs.Bold("Other Flags"), |
| 102 | Body: cmdutil.Dedent(categoryFlagSet.Others.FlagUsages()), |
| 103 | }, |
| 104 | ) |
| 105 | } |
| 106 | } else { |
| 107 | helpEntries.AddFlags(f.IOStreams, command, cmdutil.Dedent(categoryFlagSet.Others.FlagUsages())) |
| 108 | } |
| 109 | |
| 110 | printFlagUsages := categoryFlagSet.Print.FlagUsages() |
| 111 | if printFlagUsages != "" { |
| 112 | helpEntries.AddEntry( |
| 113 | cmdutil.UsageEntry{ |
| 114 | Title: cs.Bold("Output Formatting Flags"), |
| 115 | Body: cmdutil.Dedent(printFlagUsages), |
| 116 | }, |
| 117 | ) |
| 118 | } |
| 119 | inheritedFlagUsages := command.InheritedFlags().FlagUsages() |
| 120 | if inheritedFlagUsages != "" { |
| 121 | helpEntries.AddEntry( |
| 122 | cmdutil.UsageEntry{ |
| 123 | Title: cs.Bold("Inherited Flags"), |
no test coverage detected