Add self-contained gometalinter build tooling.
This commit is contained in:
122
tools/vendor/github.com/kisielk/errcheck/README.md
generated
vendored
Normal file
122
tools/vendor/github.com/kisielk/errcheck/README.md
generated
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
# errcheck
|
||||
|
||||
errcheck is a program for checking for unchecked errors in go programs.
|
||||
|
||||
[](https://travis-ci.org/kisielk/errcheck)
|
||||
|
||||
## Install
|
||||
|
||||
go get -u github.com/kisielk/errcheck
|
||||
|
||||
errcheck requires Go 1.6 or newer and depends on the package go/loader from the golang.org/x/tools repository.
|
||||
|
||||
## Use
|
||||
|
||||
For basic usage, just give the package path of interest as the first argument:
|
||||
|
||||
errcheck github.com/kisielk/errcheck/testdata
|
||||
|
||||
To check all packages beneath the current directory:
|
||||
|
||||
errcheck ./...
|
||||
|
||||
Or check all packages in your $GOPATH and $GOROOT:
|
||||
|
||||
errcheck all
|
||||
|
||||
errcheck also recognizes the following command-line options:
|
||||
|
||||
The `-tags` flag takes a space-separated list of build tags, just like `go
|
||||
build`. If you are using any custom build tags in your code base, you may need
|
||||
to specify the relevant tags here.
|
||||
|
||||
The `-asserts` flag enables checking for ignored type assertion results. It
|
||||
takes no arguments.
|
||||
|
||||
The `-blank` flag enables checking for assignments of errors to the
|
||||
blank identifier. It takes no arguments.
|
||||
|
||||
|
||||
## Excluding functions
|
||||
|
||||
Use the `-exclude` flag to specify a path to a file containing a list of functions to
|
||||
be excluded.
|
||||
|
||||
errcheck -exclude errcheck_excludes.txt path/to/package
|
||||
|
||||
The file should contain one function signature per line. The format for function signatures is
|
||||
`package.FunctionName` while for methods it's `(package.Receiver).MethodName` for value receivers
|
||||
and `(*package.Receiver).MethodName` for pointer receivers.
|
||||
|
||||
An example of an exclude file is:
|
||||
|
||||
io/ioutil.ReadFile
|
||||
(*net/http.Client).Do
|
||||
|
||||
The exclude list is combined with an internal list for functions in the Go standard library that
|
||||
have an error return type but are documented to never return an error.
|
||||
|
||||
|
||||
### The deprecated method
|
||||
|
||||
The `-ignore` flag takes a comma-separated list of pairs of the form package:regex.
|
||||
For each package, the regex describes which functions to ignore within that package.
|
||||
The package may be omitted to have the regex apply to all packages.
|
||||
|
||||
For example, you may wish to ignore common operations like Read and Write:
|
||||
|
||||
errcheck -ignore '[rR]ead|[wW]rite' path/to/package
|
||||
|
||||
or you may wish to ignore common functions like the `print` variants in `fmt`:
|
||||
|
||||
errcheck -ignore 'fmt:[FS]?[Pp]rint*' path/to/package
|
||||
|
||||
The `-ignorepkg` flag takes a comma-separated list of package import paths
|
||||
to ignore:
|
||||
|
||||
errcheck -ignorepkg 'fmt,encoding/binary' path/to/package
|
||||
|
||||
Note that this is equivalent to:
|
||||
|
||||
errcheck -ignore 'fmt:.*,encoding/binary:.*' path/to/package
|
||||
|
||||
If a regex is provided for a package `pkg` via `-ignore`, and `pkg` also appears
|
||||
in the list of packages passed to `-ignorepkg`, the latter takes precedence;
|
||||
that is, all functions within `pkg` will be ignored.
|
||||
|
||||
Note that by default the `fmt` package is ignored entirely, unless a regex is
|
||||
specified for it. To disable this, specify a regex that matches nothing:
|
||||
|
||||
errcheck -ignore 'fmt:a^' path/to/package
|
||||
|
||||
The `-ignoretests` flag disables checking of `_test.go` files. It takes
|
||||
no arguments.
|
||||
|
||||
## Cgo
|
||||
|
||||
Currently errcheck is unable to check packages that `import "C"` due to limitations
|
||||
in the importer.
|
||||
|
||||
However, you can use errcheck on packages that depend on those which use cgo. In
|
||||
order for this to work you need to `go install` the cgo dependencies before running
|
||||
errcheck on the dependant packages.
|
||||
|
||||
See https://github.com/kisielk/errcheck/issues/16 for more details.
|
||||
|
||||
## Exit Codes
|
||||
|
||||
errcheck returns 1 if any problems were found in the checked files.
|
||||
It returns 2 if there were any other failures.
|
||||
|
||||
# Editor Integration
|
||||
|
||||
## Emacs
|
||||
|
||||
[go-errcheck.el](https://github.com/dominikh/go-errcheck.el)
|
||||
integrates errcheck with Emacs by providing a `go-errcheck` command
|
||||
and customizable variables to automatically pass flags to errcheck.
|
||||
|
||||
## Vim
|
||||
|
||||
[vim-go](https://github.com/fatih/vim-go) can run errcheck via both its `:GoErrCheck`
|
||||
and `:GoMetaLinter` commands.
|
||||
Reference in New Issue
Block a user