Skip to content

saracen/matcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

matcher

matcher is similar to path.Match, but:

  • Supports globstar/doublestar (**).
  • Provides a fast Glob function.
  • Supports combining matchers.

Examples

Match

package main

import "github.com/saracen/matcher"

func main() {
    matched, err := matcher.Match("hello/**/world", "hello/foo/bar/world")
    if err != nil {
        panic(err)
    }

    if matched {
        // do something
    }
}

Glob

package main

import "github.com/saracen/matcher"

func main() {
    matches, err := matcher.Glob(context.Background(), ".", matcher.New("**/*.go"))
    if err != nil {
        panic(err)
    }

    // do something with the matches
    _ = matches
}

Glob with multiple patterns

package main

import "github.com/saracen/matcher"

func main() {
    matcher := matcher.Multi(
        matcher.New("**/*.go"),
        matcher.New("**/*.txt"))

    matches, err := matcher.Glob(context.Background(), ".", matcher)
    if err != nil {
        panic(err)
    }

    // do something with the matches
    _ = matches
}

About

Matcher is a fast path matcher/globber supporting globstar/doublestar

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages