func()

in pkg/tftarget/matcher.go [33:62]


func (m *matcher) Match(review interface{}) (bool, error) {
	reviewObj, ok := review.(map[string]interface{})
	if !ok {
		return false, ErrInvalidReview
	}
	address, ok := reviewObj["address"].(string)
	if !ok {
		return false, ErrInvalidAddress
	}

	matched := false
	for _, pattern := range m.addresses {
		g := glob.MustCompile(pattern, '.')
		if g.Match(address) {
			matched = true
			break
		}
	}
	if !matched {
		return false, nil
	}

	for _, pattern := range m.excludedAddresses {
		g := glob.MustCompile(pattern, '.')
		if g.Match(address) {
			return false, nil
		}
	}
	return true, nil
}