0

是否可以禁止Aliases显示在 golangcobra应用程序的帮助屏幕中?我基本上想摆脱下面的整个“别名”部分:

Usage:
  my-app [flags]

Aliases:
 alias1 , alias2

Flags:
  -h, --help              help for this command

我知道可以隐藏标志以防止出现在帮助 ( cmd.Flags().MarkHidden("myflag")) 中。是否也可以隐藏别名?

4

2 回答 2

2

这意味着定义您自己的 Usage 函数,可以使用 或使用特定的 Usage 模板 ( ),如“定义您自己的用法”部分所述usageFunc
command#SetUsageTemplate()README

您可以在此处查看默认模板。它确实包括一个别名部分:

Aliases:
  {{.NameAndAliases}}{{end}}{{if .HasExample}}

您所需要的只是定义相同的模板,但不包括该Aliases部分。

你可以看到一个这样的模板emacski/redact的例子。
是的,它没有Aliases.

{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}{{end}}
{{if .HasAvailableLocalFlags}}
Options:
{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableSubCommands}}
Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}}
  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
Use "{{.CommandPath}} COMMAND --help" for more information about a command.{{end}}
于 2020-05-31T19:28:58.957 回答
1

使用自定义用法模板,只需删除别名部分

customUsageTpl:=`Usage:{{if .Runnable}}
  {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}
  {{.CommandPath}} [command]{{end}}{{if .HasExample}}
Examples:
{{.Example}}{{end}}{{if .HasAvailableSubCommands}}
Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}}
  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}
Flags:
{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}
Global Flags:
{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}
Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}
  {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}}
`

然后设置自定义模板

cmd.SetUsageTemplate(customUsageTpl)
于 2020-06-02T05:46:34.197 回答