make version command name adjustable

This commit is contained in:
Roberto Hidalgo 2023-01-22 22:29:18 -06:00
parent f0a8223e8d
commit 20814bccd9
5 changed files with 16 additions and 4 deletions

View File

@ -10,8 +10,9 @@ import (
"github.com/spf13/cobra"
)
var VersionCommandName = "version"
var Version = &cobra.Command{
Use: "version",
Use: VersionCommandName,
Short: "Display program version",
Hidden: false,
DisableAutoGenTag: true,

View File

@ -35,7 +35,7 @@ description: {{ .Command.Short }}
{{ range .Command.Commands -}}
{{- if (or .IsAvailableCommand (eq .Name "help")) -}}
- {{ if $hh -}}
[`{{ .Name }}`]({{.Name}})
[`{{ .Name }}`]({{.Name}}/)
{{- else -}}
`{{ .Name }}`
{{- end }} - {{.Short}}

View File

@ -65,10 +65,15 @@ func Execute(version string) error {
log.Debug("starting execution")
cmdRoot := command.Root
ccRoot := newCobraRoot(command.Root)
ccRoot.Annotations["version"] = version
ccRoot.CompletionOptions.HiddenDefaultCmd = true
ccRoot.PersistentFlags().AddFlagSet(cmdRoot.FlagSet())
ccRoot.AddCommand(commands.Version)
if version != "" {
name := commands.VersionCommandName
ccRoot.Annotations["version"] = version
commands.Version.Hidden = strings.HasPrefix(name, "_")
commands.Version.Use = name
ccRoot.AddCommand(commands.Version)
}
ccRoot.AddCommand(commands.GenerateCompletions)
for name, opt := range cmdRoot.Options {

View File

@ -3,6 +3,7 @@
package chinampa
import (
"git.rob.mx/nidito/chinampa/internal/commands"
"git.rob.mx/nidito/chinampa/internal/registry"
"git.rob.mx/nidito/chinampa/pkg/command"
"git.rob.mx/nidito/chinampa/pkg/runtime"
@ -22,6 +23,10 @@ type Config struct {
Description string
}
func SetVersionCommandName(name string) {
commands.VersionCommandName = name
}
func SetErrorHandler(handlerFunc func(cmd *cobra.Command, err error) error) {
registry.ErrorHandler = handlerFunc
}

View File

@ -73,6 +73,7 @@ var TemplateFuncs = template.FuncMap{
"trim": strings.TrimSpace,
"trimSuffix": strings.TrimSuffix,
"trimPrefix": strings.TrimPrefix,
"list": func(args ...any) []any { return args },
}
// TemplateCommandHelp holds a template for rendering command help.