Files
gitea/vendor/github.com/mgechev/dots/README.md
T
2020-04-03 22:29:12 +03:00

101 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[![Build Status](https://travis-ci.org/mgechev/dots.svg?branch=master)](https://travis-ci.org/mgechev/dots)
# Dots
Implements the wildcard file matching in Go used by golint, go test etc.
## Usage
```go
import "github.com/mgechev/dots"
func main() {
result, err := dots.Resolve([]string{"./fixtures/..."}, []string{"./fixtures/foo"})
for _, f := range result {
fmt.Println(f);
}
}
```
If we suppose that we have the following directory structure:
```text
├── README.md
├── fixtures
│   ├── bar
│   │   ├── bar1.go
│   │   └── bar2.go
│   ├── baz
│   │   ├── baz1.go
│   │   ├── baz2.go
│   │   └── baz3.go
│   └── foo
│   ├── foo1.go
│   ├── foo2.go
│   └── foo3.go
└── main.go
```
The result will be:
```text
fixtures/bar/bar1.go
fixtures/bar/bar2.go
fixtures/baz/baz1.go
fixtures/baz/baz2.go
fixtures/baz/baz3.go
```
`dots` supports wildcard in both - the first and the last argument of `Resolve`, which means that you can ignore files based on a wildcard:
```go
dots.Resolve([]string{"github.com/mgechev/dots"}, []string{"./..."}) // empty list
dots.Resolve([]string{"./fixtures/bar/..."}, []string{"./fixture/foo/...", "./fixtures/baz/..."}) // bar1.go, bar2.go
```
## Preserve package structure
`dots` allow you to receive a slice of slices where each nested slice represents an individual package:
```go
dots.ResolvePackages([]string{"github.com/mgechev/dots/..."}, []string{})
```
So we will get the result:
```text
[
[
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/bar/bar1.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/bar/bar2.go"
],
[
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/baz/baz1.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/baz/baz2.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/baz/baz3.go"
],
[
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/foo/foo1.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/foo/foo2.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/dummy/foo/foo3.go"
],
[
"$GOROOT/src/github.com/mgechev/dots/fixtures/pkg/baz/baz1.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/pkg/baz/baz2.go"
],
[
"$GOROOT/src/github.com/mgechev/dots/fixtures/pkg/foo/foo1.go",
"$GOROOT/src/github.com/mgechev/dots/fixtures/pkg/foo/foo2.go"
],
[
"$GOROOT/src/github.com/mgechev/dots/fixtures/pkg/foo/bar/bar1.go"
]
]
```
This method is especially useful, when you want to perform type checking over given package from the result.
## License
MIT