Handle aliased flags

This commit is contained in:
Kovid Goyal
2022-08-17 16:33:41 +05:30
parent 2ca8ae8e5f
commit a32251cab4
4 changed files with 50 additions and 12 deletions

View File

@@ -362,6 +362,10 @@ func show_usage(cmd *cobra.Command, use_pager bool) error {
return nil
}
func FlagNormalizer(name string) string {
return strings.ReplaceAll(name, "_", "-")
}
func CreateCommand(cmd *cobra.Command) *cobra.Command {
cmd.Annotations = make(map[string]string)
if cmd.Run == nil && cmd.RunE == nil {
@@ -379,6 +383,10 @@ func CreateCommand(cmd *cobra.Command) *cobra.Command {
cmd.SilenceUsage = true
cmd.PersistentFlags().SortFlags = false
cmd.Flags().SortFlags = false
cmd.Flags().SetNormalizeFunc(func(fs *pflag.FlagSet, name string) pflag.NormalizedName {
return pflag.NormalizedName(FlagNormalizer(name))
})
cmd.PersistentFlags().SetNormalizeFunc(cmd.Flags().GetNormalizeFunc())
return cmd
}
@@ -402,9 +410,6 @@ func Init(root *cobra.Command) {
root.SetHelpFunc(show_help)
root.SetHelpCommand(&cobra.Command{Hidden: true})
root.CompletionOptions.DisableDefaultCmd = true
root.SetGlobalNormalizationFunc(func(fs *pflag.FlagSet, name string) pflag.NormalizedName {
return pflag.NormalizedName(strings.ReplaceAll(name, "_", "-"))
})
}
func Execute(root *cobra.Command) error {

View File

@@ -6,6 +6,7 @@ package at
import (
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"kitty/tools/cli"
"kitty/tools/utils"
@@ -25,6 +26,12 @@ func run_CMD_NAME(cmd *cobra.Command, args []string) (err error) {
return
}
func aliasNormalizeFunc_CMD_NAME(f *pflag.FlagSet, name string) pflag.NormalizedName {
name = cli.FlagNormalizer(name)
ALIAS_NORMALIZE_CODE
return pflag.NormalizedName(name)
}
func setup_CMD_NAME(root *cobra.Command) *cobra.Command {
ans := cli.CreateCommand(&cobra.Command{
Use: "CLI_NAME [options]",
@@ -33,6 +40,7 @@ func setup_CMD_NAME(root *cobra.Command) *cobra.Command {
RunE: run_CMD_NAME,
})
ADD_FLAGS_CODE
ans.Flags().SetNormalizeFunc(aliasNormalizeFunc_CMD_NAME)
return ans
}