refactor without VisitAll

This commit is contained in:
Benjamin Levesque 2025-08-31 18:09:46 +02:00
parent 141518d8a3
commit a9cc63b8a3
No known key found for this signature in database
GPG key ID: 765E3CB147AA4D4A

View file

@ -24,35 +24,31 @@ type JSONFlagError struct {
}
func AddJSONFlags(cmd *cobra.Command, exportTarget *Exporter, fields []string) {
f := createFlags()
f.VisitAll(func(flag *pflag.Flag) {
if flag.Name == "jq" {
flag.Shorthand = "q"
}
if flag.Name == "template" {
flag.Shorthand = "t"
}
cmd.Flags().AddFlag(flag)
})
f := cmd.Flags()
addJsonFlag(f)
addJqFlag(f, "q")
addTemplateFlag(f, "t")
setupJsonFlags(cmd, exportTarget, fields)
}
func AddJSONFlagsWithoutShorthand(cmd *cobra.Command, exportTarget *Exporter, fields []string) {
f := createFlags()
f.VisitAll(func(flag *pflag.Flag) {
cmd.Flags().AddFlag(flag)
})
f := cmd.Flags()
addJsonFlag(f)
addJqFlag(f, "")
addTemplateFlag(f, "")
setupJsonFlags(cmd, exportTarget, fields)
}
func createFlags() *pflag.FlagSet {
f := pflag.NewFlagSet("", pflag.ContinueOnError)
func addJsonFlag(f *pflag.FlagSet) {
f.StringSlice("json", nil, "Output JSON with the specified `fields`")
f.String("jq", "", "Filter JSON output using a jq `expression`")
f.String("template", "", "Format JSON output using a Go template; see \"gh help formatting\"")
return f
}
func addJqFlag(f *pflag.FlagSet, shorthand string) {
f.StringP("jq", shorthand, "", "Filter JSON output using a jq `expression`")
}
func addTemplateFlag(f *pflag.FlagSet, shorthand string) {
f.StringP("template", shorthand, "", "Format JSON output using a Go template; see \"gh help formatting\"")
}
func setupJsonFlags(cmd *cobra.Command, exportTarget *Exporter, fields []string) {