是否可以禁止Aliases
显示在 golangcobra
应用程序的帮助屏幕中?我基本上想摆脱下面的整个"别名"部分:
Usage:
my-app [flags]
Aliases:
alias1 , alias2
Flags:
-h, --help help for this command
我知道可以隐藏标志不出现在帮助中(cmd.Flags().MarkHidden("myflag")
(。是否也可以以某种方式隐藏别名?
这意味着定义您自己的用法函数,可以使用usageFunc
或使用特定的用法模板(command#SetUsageTemplate()
(,如"定义您自己的用法"README
部分所述。
您可以在此处查看默认模板。它确实包括一个别名部分:
Aliases:
{{.NameAndAliases}}{{end}}{{if .HasExample}}
您所需要的只是定义相同的技术板,但不包括Aliases
部分。
您可以看到这种用于emacski/redact
的 temmplate 的示例。
是的,它没有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}}
使用自定义用法模板,只需删除别名部分
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)