@@ -115,6 +115,8 @@ LDFLAGS := \
115115all : build
116116.PHONY : all
117117
118+ GOMODS := $(shell find . -name 'go.mod' -exec dirname {} \; | grep -v hack/tools)
119+
118120ldflags :
119121 @echo $(LDFLAGS )
120122
@@ -151,7 +153,13 @@ $(CODE_GENERATOR):
151153 GOBIN=$(TOOLS_GOBIN_DIR ) $(GO_INSTALL ) github.com/kcp-dev/code-generator/v2 $(CODE_GENERATOR_BIN ) $(CODE_GENERATOR_VER )
152154
153155lint : $(GOLANGCI_LINT ) $(LOGCHECK ) # # Run linters
154- $(GOLANGCI_LINT ) run $(GOLANGCI_LINT_FLAGS ) -c $(ROOT_DIR ) /.golangci.yaml --timeout 20m
156+ @if [ -n " $( WHAT) " ]; then \
157+ $(GOLANGCI_LINT ) run $(GOLANGCI_LINT_FLAGS ) -c $(ROOT_DIR ) /.golangci.yaml --timeout 20m $(WHAT ) ; \
158+ else \
159+ for MOD in $( GOMODS) ; do \
160+ (cd $$ MOD; echo " Linting $$ MOD" ; $( GOLANGCI_LINT) run $( GOLANGCI_LINT_FLAGS) -c $( ROOT_DIR) /.golangci.yaml --timeout 20m); \
161+ done ; \
162+ fi
155163.PHONY : lint
156164
157165fix-lint : $(GOLANGCI_LINT )
@@ -211,14 +219,13 @@ verify-codegen:
211219
212220.PHONY : imports
213221imports : $(GOLANGCI_LINT ) $(GOIMPORTS ) verify-go-versions
214- if [ -n " $( WHAT) " ]; then \
215- $(GOLANGCI_LINT ) fmt --enable gci -c $(ROOT_DIR ) /.golangci.yaml $(WHAT ) ; \
216- $(GOIMPORTS ) -local github.com/kube-bind/kube-bind -w $(WHAT ) ; \
222+ @ if [ -n " $( WHAT) " ]; then \
223+ $(GOLANGCI_LINT ) fmt --enable gci -c $(ROOT_DIR ) /.golangci.yaml $(WHAT ) ; \
224+ $(GOIMPORTS ) -local github.com/kube-bind/kube-bind -w $(WHAT ) ; \
217225 else \
218- for MOD in . $$ (git ls-files ' **/go.mod' | sed ' s,/go.mod,,' ); do \
219- (set -x; cd $$ MOD; $( GOLANGCI_LINT) fmt --enable gci -c $( ROOT_DIR) /.golangci.yaml); \
220- $(GOIMPORTS ) -local github.com/kube-bind/kube-bind -w . ; \
221- done ; \
226+ for MOD in $( GOMODS) ; do \
227+ ( cd $$ MOD; $( GOLANGCI_LINT) fmt --enable gci -c $( ROOT_DIR) /.golangci.yaml; $( GOIMPORTS) -local github.com/kube-bind/kube-bind -w $$ (go list -f ' {{.Dir}}' ./...); ) \
228+ done ; \
222229 fi
223230
224231$(TOOLS_DIR ) /verify_boilerplate.py :
@@ -297,15 +304,15 @@ verify-go-versions:
297304
298305.PHONY : modules
299306modules : # # Run go mod tidy to ensure modules are up to date
300- go mod tidy
301- cd sdk/apis; go mod tidy
307+ for MOD in $( GOMODS) ; do \
308+ (cd $$ MOD; go mod tidy); \
309+ done
302310
303311.PHONY : verify-modules
304312verify-modules : modules # Verify go modules are up to date
305- @if ! (git diff --quiet HEAD -- go.sum go.mod pkg/apis/go.mod pkg/apis/go.sum); then \
306- git diff; \
307- echo " go module files are out of date" ; exit 1; \
308- fi
313+ @for MOD in $(GOMODS ) ; do \
314+ (cd $$ MOD; if ! git diff --quiet HEAD -- go.mod go.sum; then echo " [$$ MOD] go modules are out of date, please run 'make modules'" ; exit 1; fi ; ) \
315+ done
309316
310317.PHONY : verify
311318verify : verify-modules verify-go-versions verify-imports verify-codegen verify-boilerplate # # verify formal properties of the code
0 commit comments