func parse()

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
}