aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/ryanuber/go-glob/glob.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/ryanuber/go-glob/glob.go')
-rw-r--r--vendor/github.com/ryanuber/go-glob/glob.go56
1 files changed, 0 insertions, 56 deletions
diff --git a/vendor/github.com/ryanuber/go-glob/glob.go b/vendor/github.com/ryanuber/go-glob/glob.go
deleted file mode 100644
index e67db3b..0000000
--- a/vendor/github.com/ryanuber/go-glob/glob.go
+++ /dev/null
@@ -1,56 +0,0 @@
-package glob
-
-import "strings"
-
-// The character which is treated like a glob
-const GLOB = "*"
-
-// Glob will test a string pattern, potentially containing globs, against a
-// subject string. The result is a simple true/false, determining whether or
-// not the glob pattern matched the subject text.
-func Glob(pattern, subj string) bool {
- // Empty pattern can only match empty subject
- if pattern == "" {
- return subj == pattern
- }
-
- // If the pattern _is_ a glob, it matches everything
- if pattern == GLOB {
- return true
- }
-
- parts := strings.Split(pattern, GLOB)
-
- if len(parts) == 1 {
- // No globs in pattern, so test for equality
- return subj == pattern
- }
-
- leadingGlob := strings.HasPrefix(pattern, GLOB)
- trailingGlob := strings.HasSuffix(pattern, GLOB)
- end := len(parts) - 1
-
- // Go over the leading parts and ensure they match.
- for i := 0; i < end; i++ {
- idx := strings.Index(subj, parts[i])
-
- switch i {
- case 0:
- // Check the first section. Requires special handling.
- if !leadingGlob && idx != 0 {
- return false
- }
- default:
- // Check that the middle parts match.
- if idx < 0 {
- return false
- }
- }
-
- // Trim evaluated text from subj as we loop over the pattern.
- subj = subj[idx+len(parts[i]):]
- }
-
- // Reached the last section. Requires special handling.
- return trailingGlob || strings.HasSuffix(subj, parts[end])
-}