Back to godoc.org
github.com/bmatcuk/doublestar

Package doublestar

v1.3.2
Latest Go to latest

The latest major version is v2.

Published: Aug 15, 2020 | License: MIT | Module: github.com/bmatcuk/doublestar

Index

Variables

var ErrBadPattern = path.ErrBadPattern

ErrBadPattern indicates a pattern was malformed.

func Glob

func Glob(pattern string) (matches []string, err error)

Glob returns the names of all files matching pattern or nil if there is no matching file. The syntax of pattern is the same as in Match. The pattern may describe hierarchical names such as /usr/*/bin/ed (assuming the Separator is '/').

Glob ignores file system errors such as I/O errors reading directories. The only possible returned error is ErrBadPattern, when pattern is malformed.

Your system path separator is automatically used. This means on systems where the separator is '\\' (Windows), escaping will be disabled.

Note: this is meant as a drop-in replacement for filepath.Glob().

func GlobOS

func GlobOS(vos OS, pattern string) (matches []string, err error)

GlobOS is like Glob except that it operates on vos.

func Match

func Match(pattern, name string) (bool, error)

Match returns true if name matches the shell file name pattern. The pattern syntax is:

pattern:
  { term }
term:
  '*'         matches any sequence of non-path-separators
  '**'        matches any sequence of characters, including
              path separators.
  '?'         matches any single non-path-separator character
  '[' [ '^' ] { character-range } ']'
        character class (must be non-empty)
  '{' { term } [ ',' { term } ... ] '}'
  c           matches character c (c != '*', '?', '\\', '[')
  '\\' c      matches character c

character-range:
  c           matches character c (c != '\\', '-', ']')
  '\\' c      matches character c
  lo '-' hi   matches character c for lo <= c <= hi

Match requires pattern to match all of name, not just a substring. The path-separator defaults to the '/' character. The only possible returned error is ErrBadPattern, when pattern is malformed.

Note: this is meant as a drop-in replacement for path.Match() which always uses '/' as the path separator. If you want to support systems which use a different path separator (such as Windows), what you want is the PathMatch() function below.

func PathMatch

func PathMatch(pattern, name string) (bool, error)

PathMatch is like Match except that it uses your system's path separator. For most systems, this will be '/'. However, for Windows, it would be '\\'. Note that for systems where the path separator is '\\', escaping is disabled.

Note: this is meant as a drop-in replacement for filepath.Match().

func PathMatchOS

func PathMatchOS(vos OS, pattern, name string) (bool, error)

PathMatchOS is like PathMatch except that it uses vos's path separator.

type OS

type OS interface {
	Lstat(name string) (os.FileInfo, error)
	Open(name string) (*os.File, error)
	PathSeparator() rune
	Stat(name string) (os.FileInfo, error)
}

An OS abstracts functions in the standard library's os package.

var StandardOS OS = standardOS{}

StandardOS is a value that implements the OS interface by calling functions in the standard libray's os package.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier