package config import ( "fmt" "net/url" ) // StringArray is a custom type for handling multiple string values in flags. type StringArray struct { Array *[]string } // String returns a string representation of the StringArray. func (i *StringArray) String() string { return fmt.Sprintf("%v", i.Array) } // Set appends a new string value to the StringArray. func (i *StringArray) Set(value string) error { *i.Array = append(*i.Array, value) return nil } type URL struct { URL *url.URL } func (i *URL) String() string { if i.URL != nil { return i.URL.String() } else { return "" } } func (i *URL) Set(value string) error { u, err := url.Parse(value) if err != nil { return err } *i.URL = *u return nil }