All checks were successful
Build and Push Server / build-and-push (push) Successful in 2m52s
32 lines
539 B
Go
32 lines
539 B
Go
package template
|
|
|
|
import "errors"
|
|
|
|
type StringOrSlice []string
|
|
|
|
func (s *StringOrSlice) UnmarshalYAML(unmarshal func(any) error) error {
|
|
var single string
|
|
if err := unmarshal(&single); err == nil {
|
|
if single == "" {
|
|
*s = nil
|
|
return nil
|
|
}
|
|
*s = []string{single}
|
|
return nil
|
|
}
|
|
|
|
var multi []string
|
|
if err := unmarshal(&multi); err == nil {
|
|
*s = multi
|
|
return nil
|
|
}
|
|
|
|
var nothing *struct{}
|
|
if err := unmarshal(¬hing); err == nil {
|
|
*s = nil
|
|
return nil
|
|
}
|
|
|
|
return errors.New("expected string, []string, or null")
|
|
}
|