I'm attempting to capture flags and the parsed values into a struct. What I have below works, but only on strings. When I encounter a boolean it fails so I'm trying to use an interface type without success.
type Commands struct {
appDescription string
flagsets map[string]Command
}
type Command struct {
Flagset *flag.FlagSet
parsed map[string]*string
}
command.parsed = make(map[string]string)
func main() {
var command Command
command.parsed = make(map[string]string)
flagName := "appImportFlags"
command.Flagset = flag.NewFlagSet(flagName, flag.ExitOnError)
command.Flagset.StringVar(command.parsed["test"], "arg", "", "description")
}
This works, but when I use a Boolean as in:\
command.Flagset.Bool(command.parsed["test"], "arg", "", "description")
It fails because parsed is a string. So I change it to an interface:
type Command struct {
Flagset *flag.FlagSet
parsed map[string]*interface{}
}
Then it says I can't use a type *interface{} as a *string