Documentation ¶
Overview ¶
Package filter implements filters for files similar to filepath.Glob, but in contrast to filepath.Glob a pattern may specify directories.
For a list of valid patterns please see the documentation on filepath.Glob.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ErrBadString = errors.New("filter.Match: string is empty")
ErrBadString is returned when Match is called with the empty string as the second argument.
Functions ¶
func ChildMatch ¶
ChildMatch returns true if children of str can match the pattern. When the pattern is malformed, filepath.ErrBadPattern is returned. The empty pattern matches everything, when str is the empty string ErrBadString is returned.
Pattern can be a combination of patterns suitable for filepath.Match, joined by filepath.Separator.
In addition patterns suitable for filepath.Match, pattern accepts a recursive wildcard '**', which greedily matches an arbitrary number of intermediate directories.
func List ¶
List returns true if str matches one of the patterns. Empty patterns are ignored.
Example ¶
package main import ( "fmt" "github.com/restic/restic/internal/filter" ) func main() { match, _, _ := filter.List([]string{"*.c", "*.go"}, "/home/user/file.go") fmt.Printf("match: %v\n", match) }
Output: match: true
func Match ¶
Match returns true if str matches the pattern. When the pattern is malformed, filepath.ErrBadPattern is returned. The empty pattern matches everything, when str is the empty string ErrBadString is returned.
Pattern can be a combination of patterns suitable for filepath.Match, joined by filepath.Separator.
In addition patterns suitable for filepath.Match, pattern accepts a recursive wildcard '**', which greedily matches an arbitrary number of intermediate directories.
Example ¶
package main import ( "fmt" "github.com/restic/restic/internal/filter" ) func main() { match, _ := filter.Match("*.go", "/home/user/file.go") fmt.Printf("match: %v\n", match) }
Output: match: true
Example (Wildcards) ¶
package main import ( "fmt" "github.com/restic/restic/internal/filter" ) func main() { match, _ := filter.Match("/home/[uU]ser/?.go", "/home/user/F.go") fmt.Printf("match: %v\n", match) }
Output: match: true
Types ¶
This section is empty.