diff --git a/.gitignore b/.gitignore index c37a1b1..23d53a5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.so *.dylib .vscode/* +bin/* # Test binary, built with `go test -c` *.test diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..406f34d --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,16 @@ +run: + deadline: 5m +linters: + enable-all: true + disable: + - golint + - maligned + - interfacer + - scopelint + - exhaustivestruct +linters-settings: + errcheck: + check-blank: false + ignore: fmt:.* + nolintlint: + require-specific: true diff --git a/hack/install_golangci.sh b/hack/install_golangci.sh new file mode 100755 index 0000000..9bf75ef --- /dev/null +++ b/hack/install_golangci.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# code from: https://raw.githubusercontent.com/containers/podman/main/hack/install_golangci.sh +die() { echo "${1:-No error message given} (from $(basename $0))"; exit 1; } + +[ -n "$VERSION" ] || die "\$VERSION is empty or undefined" + +function install() { + echo "Installing golangci-lint v$VERSION into $BIN" + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v$VERSION +} + +BIN="./bin/golangci-lint" +if [ ! -x "$BIN" ]; then + install +else + # Prints its own file name as part of --version output + $BIN --version | grep "$VERSION" + if [ $? -eq 0 ]; then + echo "Using existing $(dirname $BIN)/$($BIN --version)" + else + install + fi +fi