filter

package
v0.7.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2017 License: BSD-2-Clause Imports: 3 Imported by: 0

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

View Source
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

func ChildMatch(pattern, str string) (matched bool, err error)

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

func List(patterns []string, str string) (matched bool, childMayMatch bool, err error)

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

func Match(pattern, str string) (matched bool, err error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL