in internal/filters/filters.go [224:250]
func parse(source []string) (Filters, error) {
if len(source) == 0 {
return Empty, nil
}
filters := make(TypeFilters)
var typ, name string
for _, fltr := range source {
filterSlice := strings.Split(fltr, "=")
if len(filterSlice) != 2 {
return filters, fmt.Errorf("invalid filter: %s", fltr)
}
typ, name = filterSlice[0], filterSlice[1]
if err := validateType(typ); err != nil {
return filters, err
}
if _, ok := filters[typ]; ok {
return filters, fmt.Errorf("invalid filter: %s: multiple filters for the same type (%s) are not supported", fltr, typ)
}
selector := buildSelectorForTypeFilter(typ, name)
filters[typ] = append(filters[typ], TypeFilter{
Name: name,
Type: typ,
Selector: selector,
})
}
return filters, nil
}