Makefile 1.4 K raw
1
GO_APPS := $(shell find apps -maxdepth 2 -name 'go.mod' -exec dirname {} \; | sort)
2
3
.PHONY: help go-test go-vet go-fmt go-check go-app-test go-app-vet go-app-fmt
4
5
help:
6
	@echo "Available targets:"
7
	@echo "  make go-test              Run go test ./... in every Go app module"
8
	@echo "  make go-vet               Run go vet ./... in every Go app module"
9
	@echo "  make go-fmt               Run gofmt -w . in every Go app module"
10
	@echo "  make go-check             Run go-fmt, go-test, and go-vet for all Go apps"
11
	@echo "  make go-app-test APP=...  Run go test ./... in one Go app, e.g. APP=feeds"
12
	@echo "  make go-app-vet APP=...   Run go vet ./... in one Go app"
13
	@echo "  make go-app-fmt APP=...   Run gofmt -w . in one Go app"
14
15
ifndef APP
16
go-app-test go-app-vet go-app-fmt:
17
	@echo "APP is required, e.g. make $@ APP=feeds" >&2
18
	@exit 1
19
else
20
go-app-test:
21
	@echo "==> apps/$(APP)"
22
	@cd apps/$(APP) && go test ./...
23
24
go-app-vet:
25
	@echo "==> apps/$(APP)"
26
	@cd apps/$(APP) && go vet ./...
27
28
go-app-fmt:
29
	@echo "==> apps/$(APP)"
30
	@cd apps/$(APP) && gofmt -w .
31
endif
32
33
go-test:
34
	@for app in $(GO_APPS); do \
35
		echo "==> $$app"; \
36
		(cd "$$app" && go test ./...) || exit $$?; \
37
	done
38
39
go-vet:
40
	@for app in $(GO_APPS); do \
41
		echo "==> $$app"; \
42
		(cd "$$app" && go vet ./...) || exit $$?; \
43
	done
44
45
go-fmt:
46
	@for app in $(GO_APPS); do \
47
		echo "==> $$app"; \
48
		(cd "$$app" && gofmt -w .) || exit $$?; \
49
	done
50
51
go-check: go-fmt go-test go-vet