Skip to content

Commit 15544f0

Browse files
ntnnmjudeikis
authored andcommitted
Handle many modules
Signed-off-by: Nelo-T. Wallus <red.brush9525@fastmail.com> Signed-off-by: Nelo-T. Wallus <n.wallus@sap.com>
1 parent b02f846 commit 15544f0

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

Makefile

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ LDFLAGS := \
115115
all: build
116116
.PHONY: all
117117

118+
GOMODS := $(shell find . -name 'go.mod' -exec dirname {} \; | grep -v hack/tools)
119+
118120
ldflags:
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

153155
lint: $(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

157165
fix-lint: $(GOLANGCI_LINT)
@@ -211,14 +219,13 @@ verify-codegen:
211219

212220
.PHONY: imports
213221
imports: $(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
299306
modules: ## 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
304312
verify-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
311318
verify: verify-modules verify-go-versions verify-imports verify-codegen verify-boilerplate ## verify formal properties of the code

0 commit comments

Comments
 (0)