package strutils import ( "sync" "github.com/gobwas/glob" ) var ( globPatterns = make(map[string]glob.Glob) globPatternsMu sync.Mutex ) func GlobMatch(pattern string, s string) bool { if glob, ok := globPatterns[pattern]; ok { return glob.Match(s) } globPatternsMu.Lock() defer globPatternsMu.Unlock() glob, err := glob.Compile(pattern) if err != nil { return false } globPatterns[pattern] = glob return glob.Match(s) }