Как скрыть псевдонимы с экрана справки в приложении Cobra

Можно ли отключить Aliases для отображения на экране справки приложения golang cobra? Я в основном хотел бы избавиться от всего раздела «Псевдонимы» ниже:

Usage:
  my-app [flags]

Aliases:
 alias1 , alias2

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

Я знаю, что можно скрыть флаги от отображения в справке (cmd.Flags().MarkHidden("myflag")). Можно ли как-то скрыть псевдонимы?


person Chris    schedule 26.05.2020    source источник


Ответы (2)


Это означает определение собственной функции Usage, что возможно с помощью usageFunc
Или с помощью специального шаблона использования ( command#SetUsageTemplate()), как указано в раздел "Определение собственного использования" README.

Вы можете увидеть шаблон по умолчанию. Он включает раздел псевдонимов:

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

Все, что вам нужно, это определить ту же тему, но без части Aliases.

Вы можете увидеть пример такой шаблон для emacski/redact< /a>.
И да, у него нет 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}}
person VonC    schedule 31.05.2020
comment
большое спасибо, это именно то, что я искал - person Chris; 02.06.2020

используйте собственный шаблон использования, просто удалите часть псевдонима

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)
person Moch Lutfi    schedule 02.06.2020
comment
Да, я упомянул setUsageTemplate в своем ответе. И я сослался на шаблон использования по умолчанию с помощью github.com/spf13. /cobra/blob/ в моем ответе. - person VonC; 02.06.2020