func adjustCmdExamples(cmd *cobra.Command, parentName string, name string) { for _, subCmd := range cmd.Commands() { adjustCmdExamples(subCmd, parentName, cmd.Name()) } cmd.Example = strings.Replace(cmd.Example, "kubectl", parentName, -1) tabbing := " " examples := []string{} scanner := bufio.NewScanner(strings.NewReader(cmd.Example)) for scanner.Scan() { examples = append(examples, tabbing+strings.TrimSpace(scanner.Text())) } cmd.Example = strings.Join(examples, "\n") }
// ReplaceCommandName recursively processes the examples in a given command to change a hardcoded // command name (like 'kubectl' to the appropriate target name). It returns c. func ReplaceCommandName(from, to string, c *cobra.Command) *cobra.Command { c.Example = strings.Replace(c.Example, from, to, -1) for _, sub := range c.Commands() { ReplaceCommandName(from, to, sub) } return c }
// Normalize perform all required normalizations on a given command. func Normalize(cmd *cobra.Command) *cobra.Command { if len(cmd.Long) > 0 { cmd.Long = LongDesc(cmd.Long) } if len(cmd.Example) > 0 { cmd.Example = Examples(cmd.Example) } return cmd }