You've already forked postgres_exporter
mirror of
https://github.com/prometheus-community/postgres_exporter.git
synced 2025-08-08 04:42:07 +03:00
Add self-contained gometalinter build tooling.
This commit is contained in:
21
tools/vendor/github.com/ryanuber/go-glob/LICENSE
generated
vendored
Normal file
21
tools/vendor/github.com/ryanuber/go-glob/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Ryan Uber
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
29
tools/vendor/github.com/ryanuber/go-glob/README.md
generated
vendored
Normal file
29
tools/vendor/github.com/ryanuber/go-glob/README.md
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# String globbing in golang [](https://travis-ci.org/ryanuber/go-glob)
|
||||
|
||||
`go-glob` is a single-function library implementing basic string glob support.
|
||||
|
||||
Globs are an extremely user-friendly way of supporting string matching without
|
||||
requiring knowledge of regular expressions or Go's particular regex engine. Most
|
||||
people understand that if you put a `*` character somewhere in a string, it is
|
||||
treated as a wildcard. Surprisingly, this functionality isn't found in Go's
|
||||
standard library, except for `path.Match`, which is intended to be used while
|
||||
comparing paths (not arbitrary strings), and contains specialized logic for this
|
||||
use case. A better solution might be a POSIX basic (non-ERE) regular expression
|
||||
engine for Go, which doesn't exist currently.
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
```
|
||||
package main
|
||||
|
||||
import "github.com/ryanuber/go-glob"
|
||||
|
||||
func main() {
|
||||
glob.Glob("*World!", "Hello, World!") // true
|
||||
glob.Glob("Hello,*", "Hello, World!") // true
|
||||
glob.Glob("*ello,*", "Hello, World!") // true
|
||||
glob.Glob("World!", "Hello, World!") // false
|
||||
glob.Glob("/home/*", "/home/ryanuber/.bashrc") // true
|
||||
}
|
||||
```
|
56
tools/vendor/github.com/ryanuber/go-glob/glob.go
generated
vendored
Normal file
56
tools/vendor/github.com/ryanuber/go-glob/glob.go
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
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])
|
||||
}
|
Reference in New Issue
Block a user