diff --git a/hack/tools/.gitignore b/hack/tools/.gitignore new file mode 100644 index 00000000000..48b8bf9072d --- /dev/null +++ b/hack/tools/.gitignore @@ -0,0 +1 @@ +vendor/ diff --git a/hack/tools/Makefile b/hack/tools/Makefile new file mode 100644 index 00000000000..a68ba568b4c --- /dev/null +++ b/hack/tools/Makefile @@ -0,0 +1,65 @@ +# Copyright 2020 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +export GO111MODULE=on + +GOBIN ?= $(shell go env GOPATH)/bin +DEP_PROGS=\ + $(GOBIN)/buildozer\ + $(GOBIN)/gazelle\ + $(GOBIN)/golint\ + $(GOBIN)/gotestsum\ + $(GOBIN)/kazel\ + $(GOBIN)/misspell\ + $(GOBIN)/prettybench\ + $(GOBIN)/staticcheck\ + +.PHONY: all +all: clean build + +.PHONY: clean +clean: + rm -f $(DEP_PROGS) + rm -rf vendor/ + +.PHONY: build +build: $(DEP_PROGS) + +.PHONY: deps +deps: + go mod vendor + +$(GOBIN)/buildozer: deps + go install github.com/bazelbuild/buildtools/buildozer + +$(GOBIN)/gazelle: deps + go install github.com/bazelbuild/bazel-gazelle/cmd/gazelle + +$(GOBIN)/golint: deps + go install golang.org/x/lint/golint + +$(GOBIN)/gotestsum: deps + go install gotest.tools/gotestsum + +$(GOBIN)/kazel: deps + go install k8s.io/repo-infra/cmd/kazel + +$(GOBIN)/misspell: deps + go install github.com/client9/misspell/cmd/misspell + +$(GOBIN)/prettybench: deps + go install github.com/cespare/prettybench + +$(GOBIN)/staticcheck: deps + go install honnef.co/go/tools/cmd/staticcheck diff --git a/hack/tools/README.md b/hack/tools/README.md index cf5c7b94bf0..292e587b5bf 100644 --- a/hack/tools/README.md +++ b/hack/tools/README.md @@ -1,2 +1,5 @@ This directory contains a stub go module used to track version of development tools like the ones needed for updating bazel BUILD files. + +Run `make build` to download the dependencies, build the binaries and add +them to your `$GOBIN` directory.